Stop running next! before complete step to fix broken spec.

cherry-picked from 29f35fac8f7811437c22c8b6cd67be78c4402c7a in spree master.

With our confirm/complete work this isn't really necessary for us but it's good to stay in sync w/ spree master on returns & exchanges where possible.

I think this is safe for us.  "complete" should always be the final checkout step and our spree branch [always has a confirm step](https://github.com/bonobos/spree/blob/396e360/core/app/models/spree/order.rb#L16).
Assign a default credit card to a user on transition to confirm

Prior to this change when a new customer (no associated default credit card) changed their order after reaching the confirm state they would be prompted to re-introduce their credit card information since the default credit card would only be set after their first complete order. This change will associate a default credit card with the user before having to complete an order allowing the order to advance without having to reintroduce the payment information.
Add OptionValue promotion rule.