Export EntityIdGenerator in engine snapshots
Allow properties to be removed from TypeMetadata
Use parent TypeMetadata for parent properties

This is both faster and supports removing a property from a parent
type and having that property remove propogate to every type which
derives from the parent type