TileGrid keeps a grid of Tiles instead of Buffers

This will allow the TileGrid to better track the state of each Tile.
Move texture creation to Layer

This allows Layers to create their own textures instead of relying on
Servo to do the job. Textures now track whether or not they should be
flipped by passing the buffer to the factory method.
Move Texture creation to the TileGrid

This way each Tile can be responsible for creating its own Textures.