Renamed properties in the properties file for easy generation
Changes to WorldTreeFactory to make it more compatible with
clean performance tests

Fixed a NPE bug in WorldTreeFactory.newMap
Added MemUnit.getFreeMemory method
Added test.performance package for performance testing
HierarchicalSplit.split is bugged due to
bad logic to identify columnName
Added MemUsageMonitor class

This class is used to monitor memory activity over time

MemoryTest class now uses MemUsageMonitor
PerformanceTests class now uses MemUsageMonitor

Fixed a faulty method name (IncreasingAreaTest)
PerformanceTests.increasingAreaTest now counts down rather than up
Removed following methods
    - IWorldTree.getAllChildren
    - IWorldTree.getChildrenByClass

These methods meither had a strong use-case to exist,
nor were they being used.

Removed them from WorldTree as well

Removed getAllChildren from MemoryTest class
MemoryTest class now correctly uses Map.materializeConstraints
rather than map.pushDownConstraints
WorldTree.pickValue is bugged!

pickValue is failing when the operator is '<'
This is happening because of HierarchicalSplit picking
lowerBound when the operator is '<'
This leads to an impossible situation at pickValue

Added a small hack to temporarily bypass this
Improved error messages for missing properties

Replaced Map.allNodes with Map.getNodesByLevel

allNodes was found to be consuming enormous memory
With multiple calls, getNodesByLevel can acquire the
same functionality as allNodes

Map.materializeConstraints now iterates through each level
rather than iterating through allNodes
Updates to PerformanceTests
    - No longer uses java.util.Properties
    - Statistics class now extends TreeMap instead of HashMap
    - Added store method to Statistics class
    - Added comments to PerformanceTests.increasingAreaTest
Removed empty string "" from Helper.pieceStrings

Helper.pieceStrings contained empty string "" which was
causing PieceFactory.initializeVisuals to create two
entries for IPiece with interfaces=""
This was leading to random bugs in Tile visuals
Added WorldTree.bounds field

Computing bounds was being quite expensive for large hierarchies
Added WorldTree.bounds field to introduce some dynamic programming
Slightly optimized WorldTreeFactory.getNodesByLevel
Removed a FIXME from HierarchicalSplit - fixed