Allow Product.orders

One thing that our store admins need to do often is find the orders that have been made for a given product. This can be easily achieved by adding these `has_many through:` lines. This seems like a capability that other stores might find useful as well.

Fixes #5247
Don't try to compute based upon adjustment total.
Don't try to compute based upon adjustment total. Part 2 git fail.
Change order updater to refresh shipment rates and amounts on change

* This change will refresh the shipment rates and amounts when a
* completed order state changes.

  One specific example would be if the order line item quantity is
  changed in the admin menus we want the order shipment and shipping
  total to update.

Fixes #5235
Fixes #5222
refs #4428

Conflicts:
	core/spec/models/spree/shipment_spec.rb
Fix spec.
Finally fixes last backend spec.
Fallback to a default route. Fixes #5261
Add destroyed variants to be removed from a shipment

* Previously, if a variant was destroyed it was impossible to remove it
  from a shipment. This change allows all variants to be removed.

Fixes #5268
Delete nil parameters to prevent undefined method hash_with_indifferent_access when nil address passed.
All gateway errors should render from same gateway error partial.
Update orders.promo_total in OrderUpdater

orders.promo_total field wasn't getting updated in certain cases, like when you add the promo first and then a line item afterward.
the *adjustment* got updated and the correct number was displayed in the cart, but the orders.promo_total value was incorrect.

Fixes #4607
Gateway errors should be consistent with other payment errors.

Fixes #5270
Fix using check payment method in admin.
Fixing support for remembering your cart after logging in as well as remembering your last order you were working on after logging out and then back in again.

Fixes #5075
Fixes spree/spree_auth_devise#220
Extracting Spree::ShippingMethod.find_by_name from create_shipments_from_params because it should be Spree::ShippingMethod.find_by_admin_name but this change needs to be handled carefully

Closes #5275
Spree::Zone#country_list fix

Just fixing wrong default value of case expression - should return an Array instance, ie. `[]` instead of `nil`.

Fixes #4827
Add state_text to StockLocation

I'm working on a revision to `Spree::TaxCloud`, and we use the `StockLocation` addresses pretty heavily. It'd be a huge help to have the `state_text` method that exists in the [`Spree::Address` model](https://github.com/spree/spree/blob/master/core/app/models/spree/address.rb#L39).

Fixes #4872
Bump version.
Bump next beta.
Create Spree::Core::ControllerHelpers::Order module's test
Fixes #5298