Added CookBook, IRecipe, RecipeFurnace, RecipeShaped, and RecipeShapeless.

For blocks that extend BlockPlus, recipes should be added by overriding the setRecipes method and using the provided CookBook instance.
This should make defining recipes and even defining new recipe types a little easier.