Add item::type_name to get the name without prefixes

Similar to item::nname, it returns the item type name without item specific properties (damage, ...).
But it can return special names for blood and corpse items and for items that have a unique name.
It uses the already loaded item type pointer of the item instance.
Add item::make_handed to setup a handed item

This replaces the duplicated code in map.cpp and item::item.

Use the existing enumeration handedness (from bodypart.h), which is also used in the constructor of items.

Remove itype::is_sided as not needed (used at one place only, converts to it_armor when it's already an it_armor).
Remove direct usage of it_artifact in player.cpp

Add callbacks in the item class that are called when the artifact messages should be displayed.
The callbacks do what was previously done in player.cpp, but the item class knows about the artifact class anyway.
Remove direct usage of itype in various files

Only where possible, because some code still refers to specific itype types.

Use the equally good functions of the item class instead:
item::volume(),
item::weight(),
item::is_*()
item::is_weap() contains basically the same check as previously written.
item::has_quality instead of manually querying it.
...

Remove direct usage of artifact in mondeath.cpp, map::spawn_artifact does the same as the previous code.
Coverage bitsets depend on num_bp instead of a hardcoded number.

This actually decreases the bitset to 12 bits because num_bp is 12, and
there are only 12 (real) body parts. The 13th part is num_bp which
should not appear in the bitset anyway.

The json read/write functions for bitsets are templated, but as they are still defined inside json.cpp, they have to be instantiated there to be usable in other compilation units.
Implement wearable non-armor items

item::is_armor will now also check for the presence of a "IS_ARMOR" flag, and if so consider the item armor.

The flag is used in a shoulder strap item, which is a gun mod. Attached to a rifle it makes the rifle a wearable item as is_armor will now return true for that modified rifle.

Note: it's now possible to directly wield a worn item without taking it of first. This is required to effectively use shoulder straps.

Note: it still needs additional data for encumbrance etc.
Update item_groups.json

Halved trenchcoat and duster spawns, to make up for the addition of the dusters.
Merge pull request #10177 from Mshock777/mapgen

Small mapgen fix
Merge pull request #10176 from zaroth/hands_free

Added an option in the martial arts menu to prevent accidental wielding ...
Merge pull request #10173 from narc0tiq/wtf-lang-extractor

Fix some silly Python issues with lang/extract_json_strings.py.
Merge pull request #10172 from Dragoonseal/master

Adds dusters
Herp derp.
Merge pull request #10170 from Rivet-the-Zombie/survivor-machete

Adds survivor machete.
Fixes some missing spoilage timers.

Adds spoilage timers to chicken noodle soup and sap soup.
It's spelled 'clairvoyance'
Merge pull request #10184 from Rivet-the-Zombie/soup-spoilage

Fixes some missing spoilage timers.
Updated help with grammar fixes and new info.
Cleared up some grammar issues (long sentences, wrong commas etc.) in
help and added a section about "Keep hands free" option in martial
styles section.
recipe_armor.json updated to include legrig recipe

Adds a recipe for drop leg pouches:
1 tool with hammering quality >= 1
a sewing kit/needle with 15 units of thread
10 rags
2 pouches
2 metal scraps
20 minutes to craft
Further cleanup of the pickup code regarding autowielding and autowearing
recipe_armor.json updated to include hat_boonie recipe

Adds a recipe for a boonie hat:
Sewing kit/needle with 10 units of thread
4 rags
25 minutes to craft
Tailoring level 3