Loads of refactoring...

...mainly made CollectionJsonPropertyAttr obsolete, as we get instance
types via assembly now. NOT stable, as abstract must be in same assembly
as all instance types.
Keep attr for now,,,,