Fixed a bug in QueryResolutionEngine which was not handling certain
types of queries correctly.
Added static method to Range class to generate a Range out of
available set of values.
Added missing empty-set case for RangeSet.generateRandom()
Fixed some assertion error messages in Range class
Refactored some field names in ConstraintSolver class

Added logic to create a hierarchical map of property - constraints
Updated BasicSolver constructor to take hierarchical constraint map

Added logic to BasicSolver to handle multiple constraints on the same
property that apply to a given hierarchy level. This causes issues
particularly in the BasicSolver as, we currently handle each constraint
independent of others.