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 This is where we store the products and option values. If this were against Spree 2.3 I would have used @jhawthorn's updated preferences which do the same thing. If we ever upgrade/backport those changes we can migrate this to use that column instead.

As a bonus, for any other promotion rules we write that require some sort of storage we can use the above.