make itype use virtual inheritance

change several static_cast to dynamic_cast
add check for worn lightsources
add new itype type: it_tool_armor

combination of tool and clothing
iuse::light_on and iuse::light_off more generic
use item::display_name for worn items to show their charges, too.

use its color_in_inventory for proper color of active items, too.
adding miner hat
process active worn items just as any other item
rename miner hat to mining helmet
Damage happening

Still needs properly aimed, but it's WAY to late to start now.  Will
look into it tomorrow.
extract code that sets item::fridge into separate function
make items rot even inside fridges
Adds bodypart tracking, caps damage

As much as it would be Nifty to slam one's arm into >-1000 damage, it's
also unplayable overkill.
Consistency-checking

FANGS and SABER_TEETH shouldn't both be present at the same time.
Sorry, all.
Fixes a few issues with the lab ending. The misplacement of some items, no ammo for one of the guns.

Changed the cascade console: it no longer gives the option to kill or release monsters if they didn;t spawn.
Console to kill monsters now works.
Fixed item spawning so cloning vats are a viable target again.
Merge pull request #6141 from KA101/FixFungus

(Ready) Fix fungus
Merge branch 'miners-hat' of github.com:BevapDin/Cataclysm-DDA
Item spawns and recipe, as promised.
Merge pull request #6156 from KA101/Proper-growth

Consistency-checking