Create a type object. @param[in] name Type name. @param[in] pTypePackage Package in which the template object should be stored. @param[in] pParent Parent type. @param[in] pTemplate Template object. @param[in] flags Type flags. @return Pointer to the type object if created successfully, null if not. @see Unregister() PMD: Removing const because: - Objects must be abl