Add distanceFunc interface to metrics.
When the user picks manhattan distance, we should actually use the Manhattan distance function. Also slight refactor to make the code more DRY.
One must always convert one's vectors
Merge pull request #54 from njern/knn_refactor

Knn refactor