Update Version for ApiRecipe, slightly reformat ApiRecipe
ApiRecipe now throws IllegalArgumentException instead of RuntimeException for invalid recipes.
Add missing description to ApiRecipe.addFurnaceRecipe
Small refactor to prepare for ASM