Set up smashable paved bridges

These are for use in world gen, although the code isn't there yet. Some adjusting on the bashing numbers may be needed, as this is an entire tile of bridge being bashed down.
Update terrain.json

Fix json errors
Make recipe requirement loading more obvious.
Move item_name() to itypedef, declare it for general use.
Display known recipes item can be used for in item info.
Move a bunch of crafting stuff out of game and into player.
Default batch_size to 1 for can_make().
Cache recipe-from-item lookup at game init.
Speed up craftability check for item to recipe search.
Add some constness.
Remove the quickly-deprecated recipes_using_itype() function.
Rename recipes_by_itype to recipes_by_component.
More descriptiveness.
Don't display recipe list in item description if over a dozen recipes.
Straw (implementation)
Straw bed
Furniture (de)construction, warmth changes
src/itype.h: Added variable to it_gunmod
Added a variable to the struct it_gunmod (int req_skill) to represent the
required skill to install a given mod.
src/item_factory.cpp: Added new JSON field
Set gunmod_template->req_skill to whatever integer the JSON field "skill_required" contains
src/player.cpp: Change the marksmanship check
Changed the marksmanship check when installing a gun mod, so instead of checking whether it's equal to 1 it checks whether the player meets the skill requirement.