Associate default user address in pre-transition callback

Two advantages:

1) Centralizes this logic, as we want this to happen whether you create
an order from frontend, backend or API.

2) Waits until the last possible moment to assign an address and will
thus get the most recent default address, rather than the one at the
time the cart was created.

Make default address association safer

It turns out that the state transition itself calls a save, so there is
no need to add one more here. To make this even safer, we refuse to
associate default addresses that are not valid.

Save two queries by checking _id instead of the association

Convert to new hash syntax

Fixes #5108

Conflicts:
	core/app/models/spree/order/checkout.rb
Make Shipment.cost default to 0

Since upgrading to Spree 2.2, I've noticed exceptions getting thrown by, for instance [`cost + promo_cost`](https://github.com/spree/spree/blob/2-2-stable/core/app/models/spree/shipment.rb#L151) throwing `NoMethodError: undefined method `+' for nil:NilClass`.

Looking into my db schema, I see that virtually all decimal figures in Spree default to 0, but it looks like for some reason `spree_shipments.cost` didn't get that default. This migration helps ensure a smooth upgrade path from earlier Spree releases to 2.2.

Fixes #5128
Add completed back as default state.
Add missing translation

Specs were complaining like this: https://gist.github.com/jordan-brough/336daa1b1648dd8609e8
Fixes #5135

Conflicts:
	core/config/locales/en.yml
Don't crash if there is no address to associate

Rather, just do nothing. This prevents a crash we've seen in production at
Bonobos.

Fixes #5137
Allow assigning shipped_at to shipments.
Merge pull request #5101 from themetric/fix-api-custom-template

add missing respond_with to some API controllers and add tests
Merge pull request #4844 from woboinc/bugfix/avoid_name_clashing

Avoid name clashing when including modules
Conflicts:
	core/app/models/spree/order.rb
add validation to verify that count_on_hand of backorderable should not go negative if it is not backorderable

Fixes #3808
add a before_transition to verify if order is resumed only if there are no insufficient stock lines
Fixes #3819

Conflicts:
	core/app/models/spree/order/checkout.rb
Fix API::Orders#create  for admins.
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