Add blank to ShippingMethod's TaxCategory select

Addresses https://github.com/spree/spree/issues/4914

Now ShippingMethods whose `tax_category` is `nil` will display a blank selector rather than falsely displaying the first TaxCategory in the system.

Note that due to the UI implementation it appears to be impossible to return to selecting `nil` after a TaxCategory has been selected.
Move set_shipments_cost call to Order#update_from_params

This stops the method from being called whenever Order#checkout_steps is called and thereby reduces some queries

This needs to be called in the checkout_specs to ensure that the state isn't jumped as long as this method is called.

Fixes #4898
Fixes #4979
Shipment cost is now included in spec totals.
Revert "Add pry and pry debuggers to common spree dependencies"

This reverts commit 7c367d5ca0e2f293813278a0e37d9f731aa8befb.

CI breaks with these errors: (lack of ruby 2.1 apparently)

  [03:52:55][Step 1/1] in directory: /mnt/72aec43634788be0/core
  [03:52:55][Step 1/1] `ruby_21` is not a valid platform. The available options are: [:ruby, :ruby_18,
  [03:52:55][Step 1/1] :ruby_19, :ruby_20, :mri, :mri_18, :mri_19, :mri_20, :rbx, :jruby, :mswin,
  [03:52:55][Step 1/1] :mingw, :mingw_18, :mingw_19, :mingw_20]
  [03:52:56][Step 1/1] `ruby_21` is not a valid platform. The available options are: [:ruby, :ruby_18,
  [03:52:56][Step 1/1] :ruby_19, :ruby_20, :mri, :mri_18, :mri_19, :mri_20, :rbx, :jruby, :mswin,
  [03:52:56][Step 1/1] :mingw, :mingw_18, :mingw_19, :mingw_20]
  [03:52:56][Step 1/1] `ruby_21` is not a valid platform. The available options are: [:ruby, :ruby_18,
  [03:52:56][Step 1/1] :ruby_19, :ruby_20, :mri, :mri_18, :mri_19, :mri_20, :rbx, :jruby, :mswin,
  [03:52:56][Step 1/1] :mingw, :mingw_18, :mingw_19, :mingw_20]
Fix admin payment form not being displayed on payment method change

When there are multiple payment methods, clicking the radio button for a payment method other than the first causes the payment forms to not be displayed.

How to replicate in sandbox:
1) Create an order through the admin until the payment state is reached
2) Create a new payment for the order (at this point the credit card form should be visible)
3) Click the Check radio button
4) Click the Credit Card radio button
5) The credit card form is no longer visible
Merge pull request #4983 from bonobos/fix/admin-payment-switch-2-2

Fix admin payment form not being displayed on payment method change
Merge pull request #4956 from brchristian/patch-3

Add blank to ShippingMethod's TaxCategory select
Use prepend_before_filter to try calling before apply_coupon_code. refs #4926
Added missing translation for back_to_shipping_categories_list

Fixes #4993
Do not blindly accept just any month for CreditCard expiry

Fixes #4971

Conflicts:
	core/app/models/spree/credit_card.rb
Silence two warnings

Fixes #4985

Silences this:

    [WARNING] You are not setting Devise.secret_key within your application!
    You must set this in config/initializers/devise.rb. Here's an example:

And this:

    [deprecated] I18n.enforce_available_locales will default to true in the future. If you really want to skip validation of your locale you can set I18n.enforce_available_locales = false to avoid this message.

in the sandbox app.
Disassociate inventory units when a ReturnAuthorization is destroyed

Avoid leaving the inventory units in a bad state.

Fixes #4935
Revert "Use prepend_before_filter to try calling before apply_coupon_code. refs #4926"

This reverts commit 8f30111b0498010e6d6e55e4dc646222e1577ee5.
Improvements to API performance.

Refactor BaseController#product_scope to allow subclasses
to override the associations that are eager-loaded from a product.
In doing so, removed two associations that were eager-loaded
but never referenced (product.properties, variant.prices).

In Product#total_on_hand, don't load and instantiate all the
variants if all we need to know is whether any of them
track inventory. And don't load all the stock_items to sum their
counts on hand.  (Fix to 368b89786).

Fixes #5008
More code coverage.
Reduce the number of cascading touches.

For better performance when saving a product with many variants,
don't call `touch` when not necessary.

* After saving a product, but neither the product nor its
  default price changed, don't touch it.
* After saving a stock item, only touch the variants if the stock
  item changed.

Background: in ActiveRecord, if a product has not changed,
product.save will not write to the DB--but it *will* fire
the `after_save` callback. In that case there is no need to
touch anything.

Also factored out a method in variant.rb.

Fixes #5009
Merge branch '2-2-stable' of github.com:spree/spree into 2-2-nemo-stable

Conflicts:
	core/app/models/spree/product.rb
	core/app/models/spree/stock_item.rb