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
Add caching to CountriesController#index
[api] Return a 304 response with /api/countries requests
Add updated_at column to spree_states to assist in API caching
[api] Only serve states response when cache is not stale
[api] Add endpoint for general config
Dont send a HTTP POST when removing non-persisted nested fields

Fixes #3204
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

Conflicts:
	core/lib/spree/core/permalinks.rb
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