Makes back_holster craftable.

Since it's otherwise unobtainable.
Apply astyle to player::rate_action_unload
Apply astyle to some item functions.
Rename item::inspect_active_gunmod to active_gunmod to be consistent.
Implemented the item slot for guns:
Make some gun members optional in json:

Remove entries from json that contain the default value.
Implemented the item slot for gunmods:
Make ammo_modifier of gunmods in json optional

And also remove other entries of gunmods that have the default value.
Make item::curammo private.
Bah, bad pointer. Use references instead of pointers.
Move exact ammo selecting function into player class.
Extract check for item being auxiliary gunmod into a function.
Move item::mode into item::item_vars.

Replace direct access with simple getter and setter functions,.

Move the next_mode function into the gun sections so all three functions are together and not lonely.
Move the "put item into inventory" code into a separate function.
Disentangle game::unload for containers:

Unload containers first, continue with guns / tools later.
Make unloading a gun generic, remove references to specific gunmods

Remove the check for specific gunmods, instead iterate over all mods of the gun and unload them via a recursive call.
Update player::rate_action_unload with the easier logic from game::unload

Make it take a const reference and be const itself.
Use used weapon (gun or gunmod) when crating casings with RELOAD_EJECT flag.

The item variable is checked in eject_casings (called from item::reload) with the gun / gunmod, so it already matches there.
Get skill of fired gun directly from used item, no special code for gun/gunmod.
Move common data of ammo/gun/gunmod into common data structure,

The common_gun_data is inherited by all three sructs and recoil is available in them.

Make the variable in npcmove.cpp signed because it's compared to the damage, which is now signed as well and this upsets the poor compiler.

Sideeffects:
islot_gun::dmg_bonus is no named damage.
islot_gunmod has indirectly a new member: pierce - gunmods could modify the piercing damage of the gun when fired (does not apply to bayonets!) - this will be display in the item info.