Move the code to generate submaps to the beginning of map::loadn

Also add a debugmsg when generation failed, because that will most likely lead to a crash and there should be something (directly visible to the user, not inside a log file) that hints what the cause was.
Move code to actualize the content of a just loaded submap into separate function
Move set_abs_sub before calling map::loadn.

map::loadn loads a single submap, it makes no sense to adjust that coordinate here, it affects the whole object.
It's far better to set this
a) when loading the map with map::load, which loads all submaps at once.
b) when shifting. It s already called there. It must be called outside of loadn there because it's not garanted that loadn(0,0, ...) is called there at all. And only when called with gridx==gridy==0, set_sub_abs is called in map::loadn.
astyle map::actualize
Extract the item rot away on teh map code into a function.

map::remove_rotten_items it is.
Cleanup the fill-funnel code in map.cpp:

Combine two loops into one, makes no sense to extract the trap locations into map just to look it up again in the same function.
Proper boolean expressions: no comparison with true / or false.
Get the trap only once, no lookup in the map.
Extract the fill-funnel code into a separate function.

Also use iterator based iteration, no stored index, instead store a pointer to the item itself.
Extract growing (furniture) plants into a function
Extract logic for the regrowing fruits on static plants (terrain).