Duplicate many map-functions to 3D

Add a overloaded version of each function that uses tripoints instead of x,y or point objects.
Port map::disarm_trap to 3D
Port map::remove_trap to 3D
Port Creature::pos to 3D (tripoint)

Changed Creature::pos to return a tripoint instead of a (2D) point.
Change creature_tracker to use tripoints only.
Made wrapper for rl_dist that takes tripoint and point, so one can call
them with any combination.
This creates some conflicts where the function was used. The position is temporarily wrapped into 2D-points there.

Added 3D-wrapper for game::mon_at, game::npc_at and game::critter_at
Made some drawing relateved function use tripoints

Made map::drawsq, map::draw and game::draw_critter expect a tripoint as
center.

Also make all parameters to map::drawsq mandatory.
Ranged targeting uses the 3D-point already but that won't be visible as there is no key binding to change the z-level there.
Made some functions in map const
Made some map functions use their tripoint argument in further function calls.

Main code for those functions is no in the 3D-version, the 2D-version of the function redirects there.
Made the graffiti functions in map const correct.
Create submap containing air and roof tiles,

Contains special handling to place roof on top of indoors tiles and stairs on top of stairs

Make the starting shelter have an upwards stair to reach the roof.
Add vehicle::smz to store the z-coordinate of the vehicle

Similar to vehicle::smx, smy.
Not yet used in all places were it should be, that's on the TODO
Port some more functions of map to use tripoints:

map::pl_sees, map::update_vehicle_list, map::determine_wall_corner

make the seen_cache 3D.

made map::light_at and map::pl_sees const functions
Introduce MAPHEIGHT for default map height

It is used as value for zmin and zmax (with proper sign) and therefor contains the maximal z-offset in both directions (currently 0, so effectively 2D only)
Make vehicle cache 3D

Minor change: only insert valid points into map::veh_cached_parts,
makes it easier to check and remove points as veh_exists_at is synchronous to veh_cached_parts
Changed veh_cached_parts to use tripoints instead of std::pair<int,int>
Changed veh_exists_at to be 3D.
Make map::draw use tripoint internally
Make map::drawsq draw based on 3D surrounding.

Added map::blocks_vertical_view_down and map::blocks_vertical_view_up to check if one can see through the floor / roof of a tile

Add terrain flag TFLAG_NOFLOOR (indicates one can see vertical through the floor)

New rl_dist(tripoint,tripoint) is equal to the other rl_dist functions, it ignores the z-component

Allow items on air-terrain, but give it no floor, important for drawing
the stuff below it.

Also remove the automatic trap from t_open_air. It's a hack and we don't like hacks.
Well, we do when they are good, but this is just...
Add sym_down, the symbol terrain/furniture has when looked at from above.

Defaults to space for furniture and a dot for terrain.
Made map::copy_grid and forget_traps use tripoints as grid coordinates.
Add z parameter to game::update_map

Should later be used for vertical movement
Change game::despawn_monsters and game::spawn_mon to take tripoints
Add more wrapper functions with tripoints:

player::sees, game::sees_u, game::u_see, game::is_in_sunlight, game::is_empty, game::update_zombie_pos
Change default map-z offset (MAPHEIGHT) to 3

So now 7 z-levels get loaded at once (z-level 0 where the players character is, 3 z-level below and 3 above)
Terrain/vehicles can be seen from above. The starting shelter has stairs leading to its roof. From there players can see the terrain around.
Works with vehicles, too.
Make game::look_around function with z-levels

One can stand on the roof of the evac shelter and look down to see the terrain below
Uses the up/down keys (2/8) a proper keybinding must be established!

Made the seen_cache function with z-levels - not nice at all, but it hides some things and shows others.
Made a primitive implementation of map::sees that respects z-levels - nothing nice or even good, but for now it functions as a placeholder for something better.