Check if spree route proxy responds to root_path

Some stores may not define a root_path under spree engine. Currently
only spree_frontend component does that.
Add product with track_inventory false via backend

Fixes #4309

Conflicts:
	api/app/helpers/spree/api/api_helpers.rb
	api/spec/controllers/spree/api/variants_controller_spec.rb
Remove useless currency.nil? check
Specify branch for spree_auth_devise in sandbox script so we can use local git repos
Add implementation of 'Considered Risky' state for Orders

If an order is 'Considered risky' (if Order#is_risky? returns true), then the order will go into a 'Considered Risky' state. This means the order will need to be approved by an admin before it can be moved into the final 'Complete' state.

This builds on the work in #4021.

Fixes #4298
Add note about Risk Analysis features to Core
Use a test email address in checkout_spec so that I'm not subscribed to random mailing lists
Use translated text for shipment in AdjustmentsHelper
Really show all adjustments in the admin backend
Make order-update concurrency safe

When two order-updates happen at the same time, we can loose one of the
updates without this change. This locks the row on select, ensuring that
any subsequent changes don't get overwritten.

ORIGINAL COMMIT: https://github.com/bonobos/spree/commit/be9bb2a6bcfc72f186e4641516fdd00fc2b724f0
ORIGINAL AUTHOR: https://github.com/magnusvk

Additional Notes: We discovered an issue with the Order API. Trying to get our change reviewed/accepted into Spree to minimize future upgrade pain points.

extensive concurrency fixes across frontend, core, api

these changes were made at the suggestion of Spree to get a more comprehensive fix in beyond API.

* made current_order helper take hashey args to support multiple lock option
* change existing code to use hashey args
* renamed filters to have with_lock to indicate we are locking on the read. all of these filters were for write actions on the controller (from what i saw)
* incorporated magnusvk fix for checkout api controller (https://github.com/bonobos/spree/commit/817be320dacca498d8c4bbf755c46458ec2b4dcf)

Fixes #4286
Add dependent destroy to category mapping table

Fixes #4312
Do not allow adjustments to be edited or destroyed if they are closed
Do not attempt to compute an adjustment if it has no source
Delegate persist_totals and update_totals to Order#updater
[backend] Ensure order totals are updated when creating, updating or destroy adjustments

Fixes #3944
[backend] Correct adjustment amounts within adjustments_spec
Correct check for total in adjustments_spec

I have no idea why the case makes a difference in this test, but hey if it fixes it...
[frontend] Cache product 'boxes' in shared/_products
Cache entire products/show page

Warning: Updating taxons may not cause this page to be cachebusted because we don't have any touch code for taxons -> products yet.
Add caching for products, taxonomies and taxons lists on frontend

Using techniques from: http://blog.berylliumwork.com/2013/08/cache-collection-in-rails.html