9mm autorevolver

There's another handgun. Still needs the spawns, but committing to test
compilation.
Ads for LW products

Shoes was asking about seeing the flavor text from that PR in-game.  Not
sure why, but here you go.
.223 autorevolver

By Rivet's request.  Stats cross-checked with the  L523 carbine, since
this is an even smaller platform.  (But the Backup can take a much wider
selection of mods.)
Spawn groups

9mm:
homeguns, 5
pistols, 5
allguns, 6 (reduces Glock to 6)
drugdeal, 5

223:
pistols, 3
allguns, 6
drugdeal, 4
underslung shotgun category fix.
Merge pull request #9535 from Lain-/misc-fixes

Underslung shotgun category fix.
Extract the iuse function to place monsters into an iuse_actor class

New iuse_actor class: place_monster_iuse

Replace iuse::manhack, iuse::turret, iuse::turret_laser and iuse::turret_riffle.

Optional messages for friendly / hostile monsters, extraction of those message into the translation catalog.

Documentation in JSON_INFO.md
Merge pull request #9541 from KA101/LW

Some more autorevolvers
Rename field::getFieldStart and getFieldEnd to begin/end

To allow range based iteration from C++11.
Remove the dirty member of field as it is not used.

Format field::field and field::~field
Apply astyle to some functions in field.cpp

- field::findField
- field::findFieldc
- field::replaceField
- field::move_cost
Replace field iterations with range based loops

Using auto as type of the iteration variable,
Skipping the fieldCount() check, it's pointless.
Moving the cur variable inside the loop, why was it outside? This is not C, THIS IS C++!
Remove raw pointer from field map.

The entries in the map are already allocated on the heap, their address is unchanged by modifications of the map etc. no need for pointers here.

This also fixes a memory leak. The pointers were not freed when the submap was deleted.

Again moving declaration of field_entry* cur inside the loop.
Replace usage of map::field_at with direct map function

Instead of getting the field, than adjusting/querying that field manually, let the map doe all that.
Make spread_gas helper function a map member function
Make create_hot_air a map member function
Make map::field_at return a const reference.

Code outside the map is not supposed to change the fields directly, instead one should use the field related functions of the map class.

Add a non-const get_field function for non-const access the fields.
That function is protected, so it's only usable from inside the class.

Added wrapper for for const access to the field class: iterator begin/end and findField.
Documentation for field related functions.

Remove declaration of field_entry::getFieldMoveCost - it's not implemented, but field_entry::move_cost is implemented.

Simplified map::add_field by using the result of field::add_field to determine whether the field has been added or already existed.