Refactor crafting categories

Basically the same functionality, but a bit less fragile.  With a bit more work we might be able to get the menu to self-populate via the json categories.