Overhauled the crafting code, separated the function into a function tha...

...t gets the recipe from the crafting bench, a function that finds an item matching a recipe, and a function that crafts with the information from those two.

Also extracted the fancy formatting function for "a/an/N item(s)".