Rename CustomField to CustomFieldDefinition to make the names consistent with CategoryCustomField, BrandCustomField
Use strongly-typed SelectionItem collection in CustomFieldDefinition instead of string ControlConfig
Product type translation (field labels and selection item texts)