Small memory savings

Two small changes which save some memory:

* Indexes into tile arrays are now stored as bytes instead of ints, since the only need to represent very small numbers. The CustomTerrain field in the Map class means this gains us about 5MiB back for medium sized maps.
* We don't store pre-calculated textures coordinate pairs in Sprite, preferring to store pre-calculated values for each corner and return pairs on demand. This allows us to store texture co-ords for sprites using only 4 floats instead of 8. We also remove the array as well. This saved about 5MiB in my tests.