Add functions to access contents of  map::grid

Use those function whenever the grid was accessed.
Always use the get_nonant function to calculate the index of the
requested submap. Do not calculate the nonant directly.

Use range based loops for accessing map::grid.
Fix map rotation code:

Now also rotates fields, all members of the cosmetics map and radiation.
Bypasses all map limitations by swapping the mapsquare objects directly.
This ensures consistency and is more robust.
Simplify and enhance map::rotate further:

Access the submap pointer through getter functions, no direct access to map::grid.
Rotate temperature, field_count and active_item_count as well.
Erase the separate logic for rotating the computer, instead rotate it like any other submap object inside the already existing loops.
Fix submaps not being erased in editmap.cpp

Note that the content of the submaps is copied into the already existing
submaps of the main map, so the submaps in the temporary map in
editmap.cpp are not refered to outside of that function. They have to be
delete as the temporary map does not do this.
Move the map::get_nonant call into map::copy_grid

Yes, that's what it does: instead of calling copy_grid(get_nonant(...)) it calls copy_grid(...) and copy_grid calls get_nonant.
However, copy_grid only needs the nonant of the "to" submap, and it needs the actual submap coordinates anyway, so instead of calculating them back from the nonant, use the parameters directly.
Remove redundant parameters from map::saven/map::loadn

Those parameters indicate the absolute position of the map, but this is alread known and stored in the map itself:
It is set via map::set_abs_sub load(), generate() and shift().