KD-Tree and Ball tree added in a unified interface

- ball tree added
- kd tree added
- max heap data structure added for utility purposes
- both trees unified under common interface - ```NbodyTree```

Can we get a reference for the ball tree? Maybe the one you have used to understand this data structure?