mapdata: add map_bash_info struct which abstracts the weird map::bash
logic:

    int str_min;          // min str(*) required to bash
    int str_max;          // max str required: bash succeeds if str >= random # between str_min & str_max
    int str_min_blocked;  // same as above; alternate values for has_adjacent_furniture(...) == true
    int str_max_blocked;
    int num_tests;        // how many tests must succeed
    int chance;           // optional: must pass 1-100 chance to attempt the above tests
    std::vector<map_bash_item_drop> items; // list of items: map_bash_item_drop
    std::string sound;    // sound made on success ('You hear a "smash!"')
    std::string sound_fail; // sound  made on fail
    std::string ter_set;    // terrain to set (REQUIRED for terrain))
replace huge map::bash case statement with json; terrain & furniture have 'bash' object
Nerf door blocking
Caltrops first pass.
Finishing.
Merge remote-tracking branch 'origin/master' into jsonbash
Recipe.
Spawn.
 Committer: vache

 Add ability to specify a partial stack for pickup such as partial stack drop in multidrop

 On branch pickup_partial_stack
 Changes to be committed:

	modified:   game.cpp
 Add partial stack pickup, similar to partial stack drop in inventory.multidrop().

 On branch pickup_partial_stack
 Changes to be committed:

	modified:   game.cpp
Remove numeric characters from possible item letter selection
Fix typo
Revert "Recipe."

This reverts commit d46390e05ae8c847751390dfb5295c414fb9e319.
Proper recipe.
Last thing missing from merge
Color fix.
Merge remote-tracking branch 'origin/master' into jsonbash
Fix bug where all the water collected from all funnels tends to go to one container under one funnel.
Make use of renamed json syntax
Make better use of new json syntax