Add new ShapedOreRecipe constuctor and getters

This would add another constructor to ShapedOreRecipes, so the input can be used directly without using the easier-to-use mapping / lookup constructor that takes strings and pairs of characters and input items. This allows for recipe creation where input items, width and height are taken at runtime, for example to create copies of other recipes.
Also adds getters for width, height and mirrored fields.

Argument order is input, output, ... (instead of output, input, ... as it should be) to distinct it from the other constructor. If this is a moot point I can change that around.