Make non-const field access private to map

processing fields/their effects on creatures in field.cpp still uses non-const access through friendship to map, same for editmap

Reason for this is caching. Fields may affect transparency and this is to be cached. So every change of fields must (if needed) update the cache.
The functions of the map will ensure this. Other code may not be aware of that and ignore it. Using only const access does not allow changing it from the outside and therefor eliminates the need to update the cache in those cases.
move some functions from map.cpp into map.h to make everything faster

also made the map size constant
add a map::reset function, that does not much as of now. It was needed because map can not be assigned anymore (const members!).
allow falling multiple z-levels at once
made map::blocks_vertical_* methods public, why were they not before?

Flat, but non-solid terrain blocks vertical air movement too.
made a simple implementation for to_line(tripoint)
made the evac shelter above ground the same size as on surface
gave air-terrain a movecost of 2
added some logic for monster movement across z-levels