Positive Z-levels(WIP)

Since I want to add a second floor to the Rivtech facility, I need to get positive Z-levels working, since a lot of the base is already there.

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.
Merge branch 'master' of https://github.com/CleverRaven/Cataclysm-DDA into positive-z-levels
Added sky terrain, sky overmap
Finished up, everything seems to work, as I want.
Added 3-D version of Motel
Added 3-D version of Office Tower(empty) thanks to acidia
added fixed length of columns
keep weight value in fixed length
Keep all table fields length
truincated unicode strings in item names
Remove one level of nesting
minor code fixups
Change trap detection dynamics.

Traps now must be searched for. Candidate search radius increased to 11 squares.

Detection is combination of perception, tiredness, stimulus, luck, distance from trap, and trap visibility.

Traps must be detected before being known and seen.

Numbers probably need to be tweaked, but in my tests this seems fun despite my earlier (and overblown) apprehension.
redundant is redundantly redundant.
Removing dead code.

Not sure if map_extra_chance was kept for reference, but it's dead Jim.
Fixes reference to invalid water_salt item.

It should have been salt_water.
Merge pull request #8018 from Rivet-the-Zombie/salt-water-fix

Fixes reference to invalid water_salt item.
Trap search done on move.
insert some comment about juggalos, science, magnets, and magic.

Oh, and maths. Search math should actually search an area of 11.

And more comments for the why the math is the way it is in search_surroundings().
fix a warning in map.h
Remove the overmap pointer parameter from map::loadn and map::saven and map::generate

Instead make the world coordinates (wx, wy) into absolute coordinates.
These two parameters are already supplied, but currently they were relative to the overmap that was also supplied.
Now (wx,wy) are absolute, their value is calculated from the overmap pointer in map::save and map::load for compatibility with existing code.
map::loadn and map::load and map::generate are only called from the map itself and can be changed without much conflicts.

editmap:
Only store the original overmap terrain that is actually changed, not the surrounding terrain.
Remove redundancy by storing a reference to the overmap terrain that is to be changed.
Remove pointless loading of the map right in front of the (re)generating.