Continuing scala implementation.

The "TileCage" class has been made a case class, because the
tile cage class only has vals inside of it, which will never change.
Height maps update.

This is a really really early alpha implementation of a world containing
different tile types and different heights.
More updates should come out soon.
The code is still a mess, but I'll fix that soon.