Fix minor bugs (wrong monster id, crash in construction menu, crafting display glitch, recipe)

`monster::make_fungus`: The monster is identified as `mon_zombie_fireman` not `mon_zombie_firefighter` in the json data (but it's named "firefighter zombie" so much about consistency).

----

Apropos consistency: bug from http://smf.cataclysmdda.com/index.php?topic=8049.0 is already fixed (by fffbdcf8651f193d30abaa99ac8cbd3b774125fa), but I added the checks to report that kind of bug: Check terrain/furniture that is used on close/open action and check terrain in `ter_t::transforms_into`.


----

Fixes #9562 - out of bounds in construction menu. The string is really only needed inside the `if (!constructs.empty()) {` block, there it is fine to access the vector.

----

Fix a minor glitch in item info display in crafting screen: The iteration starts with i = 1, thereby the first line of the item info (folded[0]) is not printed. That line contains the volume and weight of the item.

----

Disarming blade traps gave back more blades than used when crafting. Bug was reported here http://smf.cataclysmdda.com/index.php?topic=5933.0

The items you get back upon disarming are defined in data/json/traps.json as "drops". For tr_engine it's
`"drops" : ["motor", "blade", "blade", "string_36"]` - *two* blades.
OK, so *all* terrain needs to have a transforms_into?  This calls the majority of terrain in the game Problematic.

Failed merge review.  Sorry, BevapDin.