Option value promotions

Rule will match as long as at least one item in the cart matches:

1. The product
2. All of the selected option values

For example, if the rule is for red t-shirts then any size of red t-shirt would be a match. However, if medium is added as an option value, then only medium red t-shirts will be applicable for the promotion.
@athal7 Probably a migration with:

```ruby
Spree::PromotionRule.find_each do |rule|
  rule.preferences = rule.options.merge(rule.preferences)
  rule.save!
end
```

Then dropping the `options` column and updating https://github.com/adammathys/spree/blob/2-2-bonobos-option-value-promo/core/app/models/spree/promotion/rules/option_value.rb#L26-L38 to use the built in `preferred_eligible_values` instead.