ar15 description update

Since the commit removing the AR-15's burst fire ability it is no longer an assault rifle.
Merge pull request #10544 from SpongeTheGlaive/ar15-description

AR-15 description update
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.