struct region_settings: Holds spatially relevent overmap variables. Loads from json, populating a list of suggested defaults, which
  will eventually be provided to the overmap by a regional/over-overmap. (currently there is only 'default';
  semi-rural North West USA with scattered temperate forest biome.
* stores jsonized variables relevent to overmap generation:
  * forest and swamp variables
  * "house_basement_chance": one_in(?) house : house_base (default 2)
  * shop() weightlist jsonized and sped up. Uses oter_t.rotates instead of hard-coded rotate-everything-but-s_lot.
  * parks moved to another weightlist, replacing hard-coded one_in(5) ? pool : park
  * The voodoo constants used to radially determine shop/park/house zoning are jsonized. Variables remain obtuse
    until a way to make them friendlier without breaking stuff is determined.
  * todo: more stuff. oter_specials, etc
* stores jsonized variables relevent to mapgen (pointer stashed in mapgendata)
  * struct id_or_id default_groundcover replaces grass_or_dirt. Default is the same as grass_or_dirt:
    ( one_in(4) ? t_dirt : t_grass ). In a desert region/biome one_in(10) ? t_sand : t_grass or such would fit better.
  * struct plant_coverage abstracts the builtin 'field' mapgen, determining shrub frequency and type
    as percentages.

overmap:
  * see above
  * corrected oter_t.rotates
  * oterr_weight_list moved to header, stores string id as well as int id, set post-json/pre-game
  * global obasetermap["string"] takes "example" and spits out the base oter_t ("example", "example_north" for rotates,
    "example_ns" for line_drawing tiles, etc
struct id_or_id: specification for custom grass_or_dirt / dirt_or_pile / tomato_or_tomato.
set via id_or_id(str primary, int chance, str secondary), or (int,int,int)
int .get() returns one_in(chance) ? secondary : primary
bool .match(int) compares both
post init cheching and int-setting
map: added fill/square functions that use id_or_id
mapdata: stash ptr to map and region_setting, add convenience functions
Added gender restrictions to some professions.

ie. Bride is female-only, Groom is male-only.
Added gender-specific item loadouts

So female senior citizens won't be dressed like their husbands and
male crackheads will have pants and flipflops instead of a skirt and heels.
mapgen: replace grass_or_dirt and hardcoded t_grass || t_dirt stuff with id_or_id region->default_groundcover
Made profession gender differences better

There are no gender-restricted professions, and professions are allowed
to have different names for male and female characters. Also, for professions
with gender-specific names, a message appears in the description area allowing
the player to press TAB to switch gender quickly from the profession menu.

Also, as a result of the different profession names, alphabetical sorting
doesn't work (unless we want to sort the list of professions every time, or
keep two separate lists for male and female sorted professions), so it was
changed to sort by point cost (though the default is still always at the top).
terfurn_tile: rename to ter_furn_id, move to mapdata.h
id_or_id: byte align struct, removing *_str into str_or_str temporary holding
  struct
base_oter_id( str ): return oter_id matching overmap terrain's base, or debugmsg error.
regional_settings, shops, field 'grass_or_dirt' and plant randomization: load from json
Add regional_map_settings.json, and "default" region settings which
replicate previous hard-coded traits
Merge remote-tracking branch 'origin/master' into region_traits-ep01-the_quickening

Conflicts:
	src/map.h
	src/mapgen.cpp
	src/mapgen_functions.cpp
	src/mapgenformat.cpp
	src/overmap.cpp
fix missing mapdata
fix non-usage warnings
Merge branch 'master' of https://github.com/CleverRaven/Cataclysm-DDA into profession-gender
Fixing the last wear_item call after merge
Cleanup comments, move mapdata stubs out of the loops they were in, fix default region id
optionsdata class to allow adding string option values during json init. Also add "DEFAULT_REGION"
  option.
* executed via optionsdata.add_value("OPTION_NAME", "value", "optional value txt");
* handles de-clobbering values that are not builtin, if the value is added later
  ( the game loads options (and sets default for invalid options) before data_init)
overmap: support DEFAULT_REGION option for new overmaps, and save/load the region
  settings id so players can choose another region for the next overmap, and there
  isn't a magical game-wide transformation of forests into deserts or such.