Mapgen sanity spinoffs


    mongroup: provide non-autovivicating means of validity checking.
    item_groups.json: guns_with_ammo boolean to replace hard-coded if group == "livingroom" || "behind_counter"
    mapgen place_spawns/items: implement the above and _whine_ instead of spitting out null_item or who knows what

    item factory load: use global body_parts string-to-int map, nuke
    set_bitmask_by_string(...) as it was only used by set_flag_by_string(...),
    and casting body_parts to map<Item_tag, unsigned> no workie.
     Also eliminate std::string init frenzy via const std::string & args