Drop nonsense api/checkouts#ip_address
fix permalink handling to force uniqueueness and rename on product destroy

Fixes #4805

Conflicts:
	core/spec/models/spree/product_spec.rb
'quantity -= amount' is the same as 'quantity += -amount'
Make migration more tolerant of deleted Variants

This migration bailed for me when it found an old order (before Spree used `acts_as_paranoid`) with a line_item referencing a Variant that no longer existed.

Making the migration use `variant_id` instead of `variant.id` fixed this problem for me, and I suspect will make the migration path smoother for other people who have been using Spree since before the `paranoia` gem.

Fixes #4822
Bump activemerchant to 1.43.1

This should fix spree/spree_gateway#149
Delegate accessor line_item.sku to variant

(Addressing conversation in https://github.com/spree/spree/pull/4856)

Fixes #4860
Don't assume default variant in JS. Let this be controlled by HTML markup.

Fixes #4849
Downcasing locale for jquery.validate i18n messages

Fixes #4867
add a new alias action :display and refactor some code of ability

Fixes #4865
Remove include of product filter on spree taxons

I don't know what these used to do, but they don't do that anymore.

Fixes #4861
Added initSelection to variant_autocomplete

Fixes #4862

Conflicts:
	backend/app/assets/javascripts/spree/backend/variant_autocomplete.js.erb
Encapsulate handling of payment preconditions

This would allow us to create methods that would verify the integrity of
a payment but allow us to do custom things with it.
Add utility methods for explicit authorization and capture.

There are times in custom applications that we explicitly want to
authorize or capture regardless of the payment_methods auto capture
preference or the store configuration. This lets us do that while
maintaining that the regular preconditions for payments are met.
Refactor process_payments!

As with the payment changes, this allows us to call custom methods on
payments for processing.
Add authorize_payments! and capture_payments! to orders.

Allows us to specifically authorize or capture payments on an order.