Add IOrphanable to support orphan delete, and simplify referencing to custom fields in Product and ProductVariant
Refactor ProductType model
Remove CustomFieldType and use CustomField.IsPredefined to indicate predefined fields
Refactor add predefined fields dialog
Refactor edit custom field dialog
Refactor custom field grid