Item crafting and crash fixes. #TrainsInMotion #Traincraft (1.7 rewrite)

- Fixed a crash related to a null entity when trying to load a cached rollingstock ID.
- Fixed a crash related to linking's ability to detect different carts.
- Recipes for items are now stored in the train registry.
- Reworked the GUI selector to be more generic towards entities and tile entities.
- Inventory Handler was rebuilt to be able to handle inventories from entities and tile entities.
- Crafting now works, mostly. There's an issue where it won't update unless you close and re-open the GUI, and there's also a glitch where if you shift click the crafted item it wont consume the materials.

Looks like tomorrow is gonna be another bugfix day before I can move on to cleaning up what is actually there, and working on the rest of the crafters.