Changed IWorldTree.getBounds() to return Range
Added additional static methods to IntegerRange and FloatRange
classes to construct ranges using Datum objects directly
Modified contains() method of IntegerRange and FloatRange
    - Replaced [Integer | Float] upperBound
      with [int | float] upperBound
    - Replaced [Integer | Float] lowerBound
      with [int | float] upperBound

Because both sides of the condition statements were objects,
their references were being checked instead of values.

We now rely on Java to unbox the reference types into primitives
Added step to pre-process bounds on properties based on constraints

Removed WorldTree.pickValue()
    - We rely on Range.generateRandom()

WorldTree.getBounds() now returns a clone of the randomspec range
Added method to HierarchicalSplit class to modify constraints
containing conditions with operators [ < | > ] into [ <= | >= ]