Reworked values to avoid relating them to attributes or options (as they need to persist past their deletion).
Introduced to presentational choice attribute subclasses -- image and color selection.
Changed attribute value price to property, so it doesn't clash with price fields added in subclasses.
Value creation now gets product -- matching variation could be looked for after knowing a full set of attribute values.