only show payment source form if source required

Fixes #3195
Account for situation where USA might not be found in 'add address fields to stock location' migration

Fixes #3115
[backend] Ask for confirmation before deleting a line item

Fixes #3110
Improve shipment.manifest db query

Fixes #3208
Move backend shipment manifest block into a partial

This should help extensions or even users apps to override that part of
the layout more easily, without having to override more than it's needed

Fixes #3208

Conflicts:
	backend/app/views/spree/admin/orders/_shipment.html.erb
[backend] Add missing line_item_shipment_price helper to Spree::Admin::OrdersHelper, required by _shipment_manifest partial
Dont send a HTTP POST when removing non-persisted nested fields

Fixes #3204
Specify class names for line_items, payments and shipments associations in Order model

Had an issue in the API when attempting to send (invalid) parameters through for line items it was throwing 'uninitialized constant LineItem'. Figured I'd go the nuclear option to solving this problem.:
[api] Require authorization to update an order through the API
Wrap permalink saving in a with_lock block to lock the table during updating

In addition, only select the permalink field from the table when querying all similarly-prefixed permalinks

This should prevent duplicate permalinks being generated by different processes hitting the database at the same time.

Fixes #2714
Only trigger spree.user.signup event when session[:spree_user_signup] and @order are set

This fixes the test for #836 within spree_auth_devise's
promotion_adjustments_spec.
Click on confirmation in order_details_spec which is now required due to 337cdf17e40542c3d5c6dda442154beee75b8206
Improve comment for Order#has_unprocessed_payments?

Fixes #3226
Add Product#total_on_hand convenience method.