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
Merge branch 'miners-hat' of github.com:BevapDin/Cataclysm-DDA
Item spawns and recipe, as promised.