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
Switch ItemAdjustments class to working with Plain Ruby Objects

It is not this class's responsibility to go fetching/reloading/querying the database at all. BEFORE this class even gets a hold of the objects, the objects should be in their correct states. It is *wrong* (so very, very wrong) to even be doing queries in this class... this class has one responsibility: calculate all the crap and set the right values.

ItemAdjustments's responsibility is NOT to query the database in any way, shape or form.

TL;DR: code was bad, code is now good
Move determination of adjustment.eligible into its own method
ItemAdjustments now does not issue any SQL queries directly
OrderMailer now operates using plain ruby objects
Correct adjustment_spec test for update
Move copy_tax_category responsibility to OrderContents#add
Make Stock::Coordinator work with in-memory line items
Set item.pre_tax_amount in memory, not in DB
Add tax_category stubs to ItemAdjustments spec, now that OrderContents copies over tax categories