Completely refactored tiles: StatelessTileType is now a property of
CommonTile.

Paint methods are now generic, simplifying painting in Tile class.

Tile class no longer stores id; id is a property of all tiles.

Concept of 'reskinning' gone. WorldResource is required to construct
certain objects, and paint method always takes a world resource. Any
pre-calculations that need to be done are cached and redone if the
resource changes. Game never really used that concept and the idea can
be better implemented by just constructing a new world object with the
same parameters but different graphics resource.

Old .world files still work! All in all, majour code cleanup.