Convert all mapgen_insertnamehere functions to use the same arguments:
map *m, oter_id terrain_type, mapgendata dat, int turn, float density
map mapgen_* functions to mapgen_cfunction_map<std::string, building_gen_pointer>,
attempt to load correct mapgen automagically
(temporary oter_id == mapgen function name)
overmap_terrain.json: add "mapgen" array for one of:
{ "type": "builtin", "name", "valid_mapgen_cfunction_map_key" }
{ "type": "lua", "script", "todo" }
{ "type": "json", "object": { todo } }

mapgen: choose randomly from list of defined mapgen_function abstract function pointers

oter field: add demo "field_test" mapgen addition
Take remaining mapgen_functions out of if-else-conga-line-of-doom. house mapgen -> building_generation.cpp
oops: add mapgen.h
yoink house, gas station, parks etc out of if-else-congaline-of-doom
Move church mapgen to building_generation.cpp. Amen.
Cleanse mapgen.cpp of else if ( church ) ...
Merge remote-tracking branch 'origin/master' into mapgen_sanity
blargle mv mapgen.h
[BUGFIX]: labs, bunkers, etc: overmap::ter; don't return ot_null directly for invalid coords.
extra paranoia; reset overmap::nullret to 0
editmap: fix mapgen positioning
eliminate 1.5 megabytes of \n's from 10000 submap save that only make maps.txt unreadable
Crafting window: Display info on crafted item to the left, if there's enough horizontal space.
Adjust item info color for possible item.
Merge remote-tracking branch 'origin/master' into mapgen_sanity

Conflicts:
	src/init.cpp
	src/mapgen_functions.cpp
	src/overmap.cpp
convert ALL the shops
lua: add lua_mapgen and enough class definition bindings to test
mapgen: mapgen_function_lua enabled, overmap_terrain.json: inlined lua mapgen of test "field" terrain (swampy and spammy)