instanceof is not needed to identify LeafCluster in ClusterTree.rangeQuery

 - using Visitor Pattern
 - unit test are not dependent on order in collection
Better naming for InternalCluster's key{Min,Max} values
Fix ClusterRangeQuery.isObjectInRange

- added normalizedRange field into ClusterRangeQuery
- should be more clear if absolute or relative range is used for calculation
Internal clusters cannot be filtered using rangePivotDistanceConstraint

- tidying up unit tests
Refactored B+Tree rangeSearch used in leaf cluster into separate method
ClusterTreeBuilder introduced

- renamed ClusterTree to MIndex
- multi level cluster tree builder implementation
Tidying up generics with PivotDistanceResult