Refactoring, part I

- KPTreeControllerRework is created side by side with original
KPTreeController.
- Clustering algorithm is abstracted and extracted to
KPGridClusteringAlgorithm
- Test that ensures integrity of clustering algorithm is written.