Tilemap and Tilestate added

Tilemap and Tilestate have been setup, these repesent what the level
looks like.  Overall, tiles have now been split up in the level as two
sets of objects.  One that represents what the tile looks like(based on
id).  A tick is used on these to animate any tiles that need animating.
The other set of tiles(the new one) is a mapping of each tile in the
level and represents the state that each tile is in.  Each tick is used
to update individual tiles.  The references each Tilestate has to the
adjacent tiles are currently null and still have to be setup in the
Tilemap constructor.  Things are setup in such a manner that different
levels and different tilesets will be able to be used.