Use a sparse matrix representation of the neighbors. Re-factored the QuadTree implementation to avoid insertion errors. Various fixes in the gradient descent schedule to get the Barnes Hut and exact solvers to behave more robustly and consistently.