Introduced new private TypeDef ctor that will eventually replace the public one in favor of the factory method DefineNew.
Adapted SchemaLoader to add a HostedColumn for the implicit "__id" column and to use the new TypeDef factory method when creating a TypeDef.
Introduced new metadata helper class MetadataBindingHelper with code that are to be moved from TypeDef since it's way to metadata-specific.
Removed methods CreateTypeTableDef and PopulatePropertyDef from TypeDef and redirected all calls to these to new corresponding methods in MetadataBindingHelper class.
Added method AssertHostedColumnsAreInSynchWithColumns to TypeDef and asserted it returns true when a new TypeDef is created.
Added protected TypeDef default ctor to allow specializing classes to construct "empty" instances.
Introduced new internal type TypeDefBuilder that redesign how metadata TypeDef instances are generated from stored TableDef's. The previous implementation violated constraints by setting values that should really be private and goverened by the TypeDef class.
Removed final dependencies on obsolete TypeDef.ColumnRuntimeTypes and the array itself. This is fully replaced by the HostedColums array.