Add a call to advance an order as far as it can go

This is related to #3336, as the backend has been changed to add line
items through the API, but the desired functionality is to continue the
order as far through the checkout process as possible after items have
been added.

Extracting this 'advance' into its own API call will let us remove the
while @order.next; on in spree/admin/orders_controller#update on the
backend.

Explicitly advance an order on variant changes

Previously, correct behavior relied on GET orders/edit advancing an
order as far ahead as possible. This explicitly moves the order as far
ahead as possible rather than relying on the behavior of the GET edit to do
so

Related to #3336

Fixes #3662

Conflicts:
	api/app/controllers/spree/api/checkouts_controller.rb
Cleanup Zone Editing

Fixes #3631
Do not call refresh_shipment_rates on an order if it is complete

Fixes #3648
Added missing internationalization for table headers (using same table headers as in shared/_order_details)

Fixes #3656
Ransack gem dependency updated to version 1.0.0.

Fixes #3649
[sample] Only create one option value as required, not all of them all the time

Fixes #3564
No longer create duplicate roles within Spree

Fixes #3557
[backend] use 'complete?' not 'completed?' in orders_controller_spec
Fix issue where refresh_rates for a shipment wasn't being called in VERY specific circumstances

The order_details_spec in backend was failing because of the absence of this code.
Update columns using update_column, rather than update_attribute which now calls callbacks.

Calling the callbacks causes the shipments to be reset to pending because, for some reason I did not investigate, the inventory units are set to 'backordered'. Do not want.
[backend] Correct orders_controller_spec stubbing
Adding data-hook for line_item_description

Same change as in https://github.com/spree/spree/commit/a4de83cd2376ba9666ec9fc63f68f7fadf236f73 on the 1-3-stable branch, but for the 2-0-stable branch.

Fixes #3667
Pass updaated order object to `adjustment.update!`

Make things easier to recalculate promo adjustments on updated order
totals without relying on `inverse_of: :source` option (a shipment can
also be an adjustment source). Introduce a `update_shipping_adjustments`
so that shipping adjustments are still recalculated properly as they
need to be calculated over a shipment object instead of an order.

Fixes #3549

Conflicts:
	core/spec/models/spree/order_updater_spec.rb
[backend] Order no longer receives next calls in OrdersController#edit
Don't load all promos to apply a coupon code

Fixes #3509
[api] Implement pagination for taxons#index route

Fixes #3501

Conflicts:
	api/CHANGELOG.md
	backend/CHANGELOG.md
Don't process payments if there's no payment state in orders

Fixes #3665
promotion adjustments should be eligible even if amount is zero

Fixes #3263
Make AvailabilityValidator aware of inventory units

When checking stock from line items related to shipments and inventory
units we need to check stock according to the inventory units count and
not only to the line item quantity. e.g. typical case

    Store has 5 of item A in stock
    Customer purchases 5 of item A
    Store creates 5 inventory units once order is completed
    At this point item A is out of stock

    Store admin wants to ship only 4 of Item A
    Spree should be able to decrease that quantity and restock the item

The store don't need to check stock for Item A in that scenario because
it's actually decreasing the item quantity. In fact we need to restock 1
item back to the stock location

Fixes #3586
Fix select2 dropdown width to auto adjust for content. Fixes #3286

Fixes #3675