Infrastructure

Basic infrastructure for profession-locked traits.
Traits in progress

Skater is implemented but not granted.  Computer ones are currently
looking for a place to hook into the code.  Committing to change gears
and pass out better cold-weather gear.
Prototype works now.  Roller Derby and Hockey players are more effective when skating in combat.
Police WIP

I'm not sure why it leaves a corpse, but the code to cancel the copbots
appears to be more or less working.
Rewrite MD description

Probably still too long, but better than it was.
Eyebot fix and US Marshal

Quest means something more now.
Color-coding

And some format work, too.
MD installs bionics more safely

Specifically, marginally better at installing/removing, and noticeably
better at avoiding failures (immune to Faulty Installs, in particular,
thanks to training in basic OR procedures).
Removes "save_player_data()"

As discussed in #9574.

Restoring a graveyarded file retains the map changes (broken window
through which a Hulk punched my Fragile testchar) and corpse, but no
Hulk.
Recipe pack.

1. Cough syrup recipe.
2. Non-drowsy cough syrup recipe.
3. Add possibility to use duct tape in land mine recipe.
4. Allow land mines disassembly.
5. Spring recipe.
6. Rebar recipe.
7. Jumper cable recipe.
8. Coal recipe (from coal pallet).
Remove cough syrups recipes.

I'll add poppy cough (along with recipe) in another commit.
Add poppy cough syrup.
Add poppy syrup recipe.
Unify heal methods.
debugmsg to DebugLog for "lua replaces iuse"

Because we don't want to be bitching at the player when this happens,
but it might be useful information. Closes #9675.
Item_factory: clear iuse function list upon reset.

Rename Item_factory::reset to clear(),
Call clear() from the destructor (like before), and from the new reset function,
but also (re-)initialize the object after clearing it from within reset.

This means reset clears and reinitalizes the object.

game.cpp: DynamicDataLoader::unload_data calls reset in the Item_factory, which calls init, and also init_old, so init_old must not be called again from game.cpp.
This also means that init_old can be made private as it is not used outside of Item_factory.
Move lua iuse functions into the preload.lua file

To make them available before the iuse function get used when loading the item definitions.

Also added export of custom_iodine, as it was declared but not exported to the game.
Rotate duplex house, fix bathroom.
Rephrase jumper cable to say it "shares" power.

Because, according to @Jiamil, saying it "transfers" power is
irritating.
Replaces Detective's S&W 610 with an L39-45.

Police departments in the real world had already abandoned revolvers by
the turn of the century. A 20th century revolver doesn't make much sense
for a 2040s detective.

Giving the Detective profession what is basically an upgrade of the Cop
profession's M1911 seems more appropriate. Still, this slightly tones
down the Detective's pistol skill to compensate for the nicer gun.