Changed emitter so that built-in singleton struct deserializer would deserialize into internal structs rather than calling outer struct wrapper to perform deserializaton.
Reusing registry for deserialization instead of requiring individual objects to support their own deserialization methods.