Crafting framework-related improvements

1. Makes the crafting_inventory, consume_items and consume_tools methods of game take a player* argument, so that NPCs can use the same methods. Most places are still hard-coded to use g.u (the actual player), but sewing at least is theoretically capable of using NPCs.

2. The recipe name collision error message gives more detail, and suggests a fix.