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).
Adds a modern brace-type slingshot.

Also adds a spawn (it had none) for the vanilla slingshot and fixes its
price.
Remove cough syrups recipes.

I'll add poppy cough (along with recipe) in another commit.
Add poppy cough syrup.
Add poppy syrup recipe.
RM298 HMG spawn fix.

RM298 now spawns properly.
Unify heal methods.
Merge pull request #9672 from Rivet-the-Zombie/wrist-rocket

Adds a modern brace-type slingshot.
Merge pull request #9674 from Darkyhard/rm298_spawnfix

RM298 HMG spawn fix.
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.