[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
[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
No need to call accessible_by again in ProductsController, as it is already done in BaseController's product_scope
[backend] Correct typo in products_controller_spec
Fix typos in _variables.scss and _variables_override.scss

Fixes #3338
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
[backend] PaymentsController#load_order should return order object, not result of authorize! call
Fix back end payment methods not showing up

Fixes #3233