Add "Variant/Product in cart" promotion rules.

Good for "Buy one, get another or something else free" promos.

This PR also moves some validation constraints from the promo bundle to the core bundle (since that is where the related actions/rules live).