make the bots drop broken bot items instead of corpses
astyle game::butcher
Add game::get_disassemble_recipe to get recipe used for disassembling
change disassemble code to check for enough charges using recipe::create_result
Add game::can_disassemble to check for ability to disassemble an item.
Allow disassembling of items on the ground with the butcher command

It displays a different text if there are corpses to butcher and/or items to disassemble
some cleanup, simplification, commenting
Extract some common code to load the tools/components list of a recipe.

At the same time making sure that the list only contains non-empty lists.
This in turn allows to remove all the checks for this special case.
remove some leftover indentation
fix a warning
- Plant food recipe gives 4 times the amount of plant food now.
- Recipe requires 4 times the amount of water
- Increased time reduction by plant food by 50% (was 2 days, is 3 now).
Capping the grind of crafting skills

It's mostly a blunt implementation, an optional cap parameter to be
passed to ```player::practice```. Not sure if it can be done better.

With this setup, the maximum crafting skill level one can reach via
repeatedly practicing a given recipe, is capped at "difficulty+1".
Making hooks out of nails will never bring you beyond skill level 1,
etc. Disassembly follows the same rules. If it's too strict, might
change to "difficulty+2".
Whoops
Make atomic battery mods cycle out conventional battery mods and vice versa since they're incompatible.
Spit out charges as batteries if we're installing a battery mod that doesn't use them.
Add charges to atomic battery pack and block off dissasembly to avoid regenerating charges.
Make all three battery mod types mutually exclusive and properly spawn items when evicting them.
Unload excess plutonium cells when evicting atomic battery mod.
Stylin.
NPC wield and behavior fixes.