Remove the tutorial generation code from overmap

This belongs into the tutorial class, the overmap should not know about this.

Fix: the constructor of item does not have a invlet parameter anymore. The invlet must be set separately.
Make npc position absolute.

Added legacy loading of om[xyz]
Added new coordiante translation functions: submap to overmap
Removed overmap pointer parameter from npc::spawn_at, coordinates are now absolute.
Make monster::spawnmap[xy] absolute coordinates

Use INT_MIN as default value as -1 is a likely value for this now.
Use game::force_save_monster in game::despawn_monsters because it's the same code.
Make game::lev[xyz] private and add getter functions

get_lev[xyz] return exactly lev[xyz], no changes.
Access to them is allowed for the special game classes, but this should be handled differently.
Add game::set_levxyz to set lev[xyz] and load the map

Also get rid of game::lev[xyz] and instead let the map keep track of where we are.

Special game modes:
Restructure to avoid references to game::cur_om before calling
game::set_levxyz (use global coordinates and the overmapbuffer). Also
use a local overmap variabl with instead of cur_om.
Replace setting game::cur_om and loading the map game::m, with a call to game::set_levxyz
Remove saving overmap and local map when starting a special game mode. Saving is not supported anyway, and can be (in the future) done during game play. No need to do this here.

Loading from save:
Load lev[xyz] into local variables and calculate the absolute coordinates , than call game::set_levxyz
No longer set cur_om and no longer load map manually.
Add game::get_abs_lev[xyz]

They are wrapper to return the globa lev[xyz].
Those functions return the absolute submap coordinates of the currently loaded map.
This allows to omit storing the coordinates of the current overmap, instead store the absolute coordinates of lev[xyz]

events: define map_point as global submap coordinates:
Remove parameters from calling game::add_event when those parameters should have the default value.
Move constructors of event into cpp file.
Use INT_MIN as default map_position because (-1,-1) is a valid position now.

factions: make mapx,mapy global coordinates
Remove the obsolete omx,omy.
Remove vehicle::lev[xy]

Instead use game::m to get the global coordinates of the vehicle and use those to setup/deactivate the vehicle tracking in the overmaps.
This also moves enable/disable of tracking into the overmapbuffer to avoid using game::cur_om.
All the tracking related code is now in the overmapbuffer.

map.cpp:
removed calls to update_map_[xy] during shift. this would only update the vehicle::lev[xy] which is now gone and update the tracking in the overmap, but shifting the map does not change the vehicle position in the overmap, so this is not needed at all.
in displace_vehicle: call a new vehicle function to update the submap coordinates and this triggers an update of the vehicle position in the overmap (if tracking is enabled).

Documentation!
Remove map::load, everything uses map::load_abs

This is now easy to do: replacing get_levx with get_abs_levx gets the proper global coordinates.
Remove the world coordinates from map::saven/map::loadn

The world coordinates are already known, they are store in map::abs_sub.
map::save actually uses exactly those values to call map::saven, now they are implicit supplied by the map object.

For map::load the new absolute coordinates were stored in map::loadn was called with gridx==0 && gridy==0, this is now done in map::load_abs and map::shift before alling map::loadn.

Removed outdated comment, gridx/gridy are correct there.
Fix npc spawn as a result of help call.
Make map::loadn recusive

Instead of letting the caller call it again, make the function call itself again when the requested submaps have been generated.
This should avoid some needless overhead on the side of the caller and also makes sure that the normal on-submap-load code is always run (in case someone forgot to check the return value of map::loadn).