Initial commit for KDTree
Add test for KDTree change SpatialIndexInterface

- Add a test for the KDTree (currently failing)
- Add a kNN test in the NeighborsTestAbstract
- Change the SpatialIndexInterface to a readonly index
Working KDTree

TODO:
    1. Add tests
    2. Benchmark
    3. Fix known defects
        - Dataset with duplicates
Fixed KDTree to handle duplicates

- Added test for dataset with duplicates
Fix NaiveLinearSearch kNN

- Add test KDTree against NaiveLinearSearch
- kNN did not work in NaiveLinearSearch only regionQuery
Add tests that target KDTree's time complexity
Merge branch 'kd-tree' into develop