[api] Ensure that an order cannot transition from cart -> address without a line item
Order should be paid when store owe's customer money

Fixes #3318
Fixes #3320
Ensure a useful error is provided when the API attempts to transfer into next state without valid payment information

Fixes #3315
Bump activemerchant dependency to 1.34

Fixes #3319
[api] Actually delete all line items when testing that transitioning without line items breaks
Wrap code example in CONTRIBUTING.md with backticks (`)

Fixes #3332
[backend] wait_for_ajax rather than sleeping for an arbitrary point of time

Conflicts:
	backend/spec/requests/admin/orders/order_details_spec.rb
	backend/spec/requests/admin/products/stock_management_spec.rb
[backend] wait for AJAX request to complete inside order_details_spec test
Shipment#to_package Use symbols for state.

Fixes #3326
Fixes #3327
Use paranoia for deleted_at functionality

Fixes #3321

Conflicts:
	api/app/controllers/spree/api/base_controller.rb
	api/app/controllers/spree/api/variants_controller.rb
Fix typos in _variables.scss and _variables_override.scss

Fixes #3338
[api] Include order token in orders responses

Fixes #2983
admin shipping labels maps. fix spree/spree#3298 there is no need for mapping directly of label to checkbox id, decided to nest checkboxes inside the labels instead

Fixes #3340
Fixes #3298
Makes cvv_response optional

Fixes #3330
[backend] Remove ability to edit/update/destroy StockMovements

Fixes #3280
Remove .select(field) from permalinks.rb#save_permalink; gloabalize3 modifies the statement for the models

Fixes #3343
Fixes #3329
Recreate shipments in frontend when necessary

Every time a customer gets to the point where shipments were created,
delivery step, and then decides to go back and change some item quantity
or add a new product we need to recreate the shipments so they properly
reflect the current order state.

I initially tried to apply these changes on the spree_core level but it
turns out to be really difficult because while both backend and frontend
use the same API in backend inventory units are created as soon as items
are included on the order. On the other hand in frontend inventory units
are only created when customers reaches the delivery step

Fixes #3339
Fix back end payment methods not showing up

Fixes #3233

Conflicts:
	backend/spec/controllers/spree/admin/payments_controller_spec.rb
[backend] PaymentsController#load_order should return order object, not result of authorize! call
Add dependent: :destroy to Spree::Shipment.shipping_rates

When an order transitions back from delivery, to a prior state, then back into delivery, shipments are destroyed, but not shipping_rates, leaving orphaned records behind.

Fixes #3349