Refactoring TileInterface class for lesser memory footprint
    - Removed a lot of redundant fields
    - Updated methods to work with removal of fields
    - Using StringBuffer instead of String in the right places

Updated PieceFactory to reduce memory footprint
    - Piece class no longer contains field 'visual'
    - Visuals are now stored as part of PieceFactory.pieceMap
    - Added initial capacity to PieceFactory.pieceMap
    - Removed redundant PieceFactory.listOfPieces
        - List of pieces can be obtained using pieceMap.keySet()

Refactored ITile.addToVisual      -->  ITile.addArtifact
Refactored ITile.removeFromVisual -->  ITile.removeArtifact

Removed WorldTree.stringRepresentation field
    - String representations are now computed rather than saved
    - Led to moving code from Tile.addToArtifact to Tile.updateVisuals

Added initial capacity to certain Lists and Maps
    - These Lists and Maps are mostly part of WorldTree Hierarchy
    - Reduces collections with low fill-ratios
    - Improves memory utilization

Updated Space class to reduce memory footprint
    - Removed stringRepresentation, columnRepresentation fields
    - String representation is now computed entirely whenever necessary
    - Removed (now) redundant updateStringRepresentation method

Removed coordinates field from Tile class
Added Coordinates.stringToArray method to parse Coodinates from string

Region.children field was identified as a memory-leak
This occurs when creating a WorldTree with massive number of tiles

Thus, Region.children is left as null

To ensure safe behaviour, WorldTree now consistently uses children()
whenever a reference to its children is necessary
Updated Helper.write method to reflect changes made to
WorldTree.getStringRepresentation

Removed (now) unnecessary pre-init sanity call to every node's
getStringRepresentation method
Fixed a bug in WorldTreeFactory.materializeDefinitions

case INT was picking val such that val == randomSpecHigh
This was due to
    int val = (int) (Math.ceil(data));

This has been replaced with
    int val = (int) (data);
Added small modification to Region.initNeighbours to better reflect
changes in skeleton - Space contains empty tiles instead of null
Added recurring field pieceStrings to internal.Helper class
Updated references to this field in several other classes
Added test.memory package

Created class MemUnit to represent memory usage (in b, Kb, Mb)

Create MemoryTest class with preliminary size test
Removed binary worldtree
Updated gitignore to ignore worldtree binary
Added separate method to figure out memory usage
Removed unnecessary imports in MemoryTest
Fixed a tiny space issue in WorldTree class
Added some timing information to MemoryTest.sizeTest
Moved WorldTreeFactory.materializeDefinitions into Map class
Added Hierarchy.parse(Class<?> clazz) method