Add ore dictionary support and recipes

This is basic API for custom crafting recipes, which do support ore dictionary. Ore dictionary and recipes are both created as services, and most files are interfaces. For recipe objects, I decided to use classes, as using constructor is really handy in this case.

Edit: I didn't use ServiceProvider or such things, should I have used?
Does this preserve the order of the elements as they were in the array?