Added a few NPE checks to Map.fullInit
All reads on WorldTree.children in WorldTreeFactory now happen
by calling children()
Added method Helper.Hierarchy.HierarchyClass()
Updated parser and all containers to use Helper.Hierarchy
while specifying 'level'
    - This has cleaned up a lot of code
    - Updated Hierarchy.parentLevel and Hierarchy.childLevel
        - No longer static
        - No longer accept parameters

Updated following classes to reflect above changes
    - WorldTree
    - WorldTreeFactory
    - ResolutionEngine
Working on pushDownConstraints

Small change to variable names in WorldTree constructor
Added enum Type to class Constraint
This is to be used to distinguish whether a constraint
was user-defined or generated during push-down

Updated Parser to include addition of Constraint.Type
Removed a stray ')' in PropertyDef.toString
There were severe flaws in the old way of materializing constraints
    - Lack of Max/Min handling
    - No information propagating bottom-up
    - Several impossible splits while pushing down constraints

The new design aims to resolve these issues while maintaining a
far simpler approach
    - IMap exposes materializeConstraints
    - materializeConstraints pushes down constraints top-bottom
    - This is done all the way upto Tiles
        - At tiles, they are finally materialized

Need to write test cases to ensure correct splits among children

FIXME: There are some issues with bounds.
Added removeConstraint method to IWorldTree
Fixed a NPE bug in WorldTree.getAllChildren
Added method ITile.setPiece
Implemented this method in WorldTreeFactory.Tile

WorldTreeFactory has some minor optimizations
    - Constraint constructors now use default size 0
    - Tile.artifacts uses default size 0

Updated Region.initRegion method to use Tile.setPiece

WorldTreeFactory.materializeConstraints now contains some
commented code that removes all program-generated constraints

This method has been left commented as its
increased space complexity is insignificant (~3K per 2000 Tiles)
Modifications to tests