Cereal.Type changed to CerealType
Corrected error in using ref Object for child cerealisers
Moved registerChildClass to Cerealiser
Moved all functionality relating to child cerealisers to Cerealiser
Made grainChildClass abstract
Changed signature of child cerealiser function to Cerealiser instead of Cereal
Cereal now CerealT and a template class
CerealT takes a Cereal in the constructor
No more abstract type() function in CerealT
No more abstract bytesLeft
grainUByte no longer abstract
grainBits no longer abstract
grainChildClass no longer abstract
Renamed classes and added Old prefix
First unit test passes for struct Cereal
encode tests for bool, byte and ubyte all pass with new Cerealiser
encode tests for Short and UShort pass
All numeric encode unit tests work
Removed bytesLeft from isCereal requirement
char encode tests work