bugfixes and another inventory rework #TrainsInMotion #Traincraft (1.7.10 rewrite)

- Note there is still a good degree of testing code in here.
- Fixed a crash with the datawatchers not being properly instanced.
- Fixed an issue where the GUI referenced the entity from the train rather than the one actually using the GUI.
- Fixed a crash with entity registration, apparently I'm not supposed to do it twice.
- Fixed a null pointer exception with the inventory filter.
- Started moving the inventory filtering over to slots in the container, it doesn't work in the inventory and even if it did, it would be messier and less efficient.

It's annoying that I'm reworking the inventory stuff a third time, but there's little choice. Doing it through the slots actually works, is more efficient, and is less code long run. So it's worth the extra effort.
I would finish it tonight but I just don't have it in me. I'll try and have it all finished and cleaned up tomorrow. Then I wanna look into making a boxcar and a flatcar to add so I can really test out the features.