Merged KNearest Neighbors and Nearest Neighbors

Rewrote the description of the algorithm
The transition between the two sections may need some more work
Also, if one uses the python function sort for the naive implementation, the naive implementation is the fastest except for n~1000 for the Scipy kdtree and n ~100000 for the kdtree from the lab