Added payment source import from Order hash.

Fixes #5145
Fixes #5147
Fix source import specs.
Payments pass source not source_attributes.
Fix load_user_roles. Fixes #5141
Mark inventory units as shipped in order importer.
Reload to make sure shipment.inventory_units have the latest status so that shipment.backordered? return correct value
Fixes #5163
Extract current order params to a function.

The parameters used to find and create orders is duplicated in 3 places.
Extracting them to a function reduces duplication, and will allow store
maintainers to place conditions on what makes an order unique. An
example would be store restrictions like spree-multi-domain, that
currently have to use an ugly module_eval.

Fixes #5164
Deleted the continue button on the RMA index

Deleted the continue button on the RMA index.
It does not have any function there.
Fixes #4891
Extract last_incomplete_order to method.

Extracting this logic to its own method allows store maintainers (i.e.
me!) to override this functionality to retreive orders using the logic
that makes sense for their customized version of the store. As an
example, you can override this to return nil to never do order merging,
or place additional restrictions on what the last incomplete spree order
is for a specific user.

Fixes #5177
Test to see if a better coupon exists already

If we don't find the valid promo in all our places it could be
successfully applied, but it *is* still on the order, it was accepted by
the order but a better one was used instead

Fixes #5139
Fix Spree::Promotion not applying all of the time.

There was a specific case in which promotions added to an order would
not apply to new items added to the cart. This corrects that by having
the PromotionHandler activate all promotions already associated with the
order as well as any with a blank code and path.

Closes #5072

Conflicts:
	core/spec/models/spree/promotion_spec.rb
Revert "Fix Spree::Promotion not applying all of the time."

This reverts commit c0b7522796d9f04efdae985328f1d0ce90768976.
Fix Spree::Promotion not applying all of the time.

There was a specific case in which promotions added to an order would
not apply to new items added to the cart. This corrects that by having
the PromotionHandler activate all promotions already associated with the
order as well as any with a blank code and path.

Closes #5072

Conflicts:
	core/spec/models/spree/promotion_spec.rb
Remove cache on cart page.
Add tiered promotion percent calculator.

Fixes #5138
Cant void payment that failed, and use fake cc data that passes validation.