Makes cvv_response optional

Fixes #3330
Execute transition callbacks in promos

Fixes #3364
Fix coupon code activation

Fixes #3363
Related to #3222
Show useful error messages for promotion rules and actions

Fixes #3358
Generate sensibly lengthed SKUs

Fixes #3359
Add ability to convert Spree::CreditCard objects into ActiveMerchant::Billing::CreditCard objects

This is because some gateways, such as USA EPay, will only take a AM::Billing::CreditCard object.

See here: https://github.com/Shopify/active_merchant/blob/7451976878ee35bdb753e905ccd9a833af0d1a5d/lib/active_merchant/billing/gateways/usa_epay_advanced.rb#L1296

Conflicts:
	core/spec/models/credit_card_spec.rb
Dsplay right price when product has variants

When a user loads the product page it was not displaying the price
of the variant chosen on the form

Fixes #3379
Fixes #3383