Making some pretty sweeping changes to how the serialization is actually achieved. Given how everything was actually happening with the constructor-argument pattern, I've removed that and just switched to using a direct method call after an object has been constructed.
Build an actual interface for saving shit
Added some basic implementations of the interface that covers our use-cases atm.
Need to write upgrade code.