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

Instead of getting the furn_id from the map and than looking that up in the furnlist,
this gets the furn_t object directly and uses the loadid from it instead.
Also avoid changing the items vector directly and change the bday of the seed item directly without copying it.
Extract logic for the regrowing fruits on static plants (terrain).

Use map::ter_at to directly access the ter_t object, use the other ter_set function that accepts a string, it will automatically transform it into an ter_id for us.