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".

(Also, ignore the "add sheet metal" commit, it's from/for the other PR, I reverted it. I fail at using Git. :P )