Experimental Z-Levels Mod(Ready)

Since I want to add a second floor to the Rivtech facility, I need to get positive Z-levels working.

After diving into the code(including that huge if statement in mapgen.cpp), I *think*, I know what needs to be done to get it working,  since a lot of the base is already there.
Implement a "SEEZ", that tells us how far up and down the player can look at most(and by extension, how many of the up/down slices should be loaded into map)

Extend map to store SEEZ times more submaps
transparency_cache etc. can stay the same for now - visibility calculations will ONLY happen on current z-level
<b>implement special submap type that is homogeneously one terrain(e.g. only air, or only rock):DONE-empty z-levels filled with sky </b>
rewrite anything that changes the player's z-level to do map::shift with the new z-level instead
optional: don't shift the map on every z-level, shift it only on every N z-levels
expand creature to have zpos()
expand the creature tracker/mon_at to be fully 3d
expand the stored traps to be fully 3d
expand map::i_at, ter_at, furn_at, get_ter, tr_at, etc etc to be fully 3d
Also we don't want to change the behavior of the existing t_hole.