Feature/zlevel

The end result of these changes should be no noticeable game play alteration, with the follow exceptions.

1) Tutorial and Defence games save to separate map names (via prefixing) and so have zero effect on the game world maps.

2) World / Overmap generation is slower because we now generate a vertical slice rather than a single level.

3) Movement vertically is faster because we don't need to alter overmaps when we do so.

This is part one of the shift to adding z-levels, I'm trying to do it in stages that don't break the game to reduce the amount of merge hell I get into as I go deeper.

The underlying code has been changed to support the z axis for all overmap functions / variables other than npcs (which remain with the z-level teleport bugs), and anything that is surface only (cities and the like).

Some code has been simplified by these changes as there is less switching of overmaps and a few things have their own z-level values, however for the most part things assume the game::levz is accurate for the current viewed z-level.

Part 2 will be redoing submap loading/saving so that you load a stack of them rather than just your current one, and support for 'empty' maps were it's all rock (or all air)

Part 3 will be multistory buildings, which means fixing nukes to not just hit the surface.

After that there will need to be a number of tweaks to clean up and pathing, and somewhere in all this the map generation code can be cleaned up as well so it's back to a reasonable speed.