Reorganizing mgen-API so that (during compilation) custom types have a more natural type hierarchy. Renamed UnknownCustomType->UnlinkedCustomType, and CustomTypeImpl->LinkedCustomType