Duplicate variants when duplicating products.

Cherry-pick of 69f785d732e2f7a3ad129095044413a58a97e32f

Fixes #4339
enable variant view in api. variants list is already accessible, and show method already defined on variants
controller, so no reason not to expose this

Fixes #4336
Ensure prices with currencies displayed do not break variant radio buttons on cart form

Fixes #4342

Conflicts:
	frontend/app/views/spree/products/_cart_form.html.erb
Bump to 2.0.9
Bump to 2.0.10.beta
Fix version numbers in changelogs
[api] Attempt authorization for an order if an order token is passed

This stops the 'You must specify an API key' error message from (incorrectly) appearing. That message is now supressed if an order token is passed in.

When an order token is passed, the authorize_for_order filter is called, which attempts to find an order and then compares the order's token with the order token from params/headers

Conflicts:
	api/app/controllers/spree/api/base_controller.rb
	api/app/controllers/spree/api/line_items_controller.rb
Depend on Rails 3.2.17
deleted products should not be available?

Fixes #4362
Fixes #4437
use authenticated url for option_type_autocomplete

option_type autocomplete wasn't using the authenticated url helper.  Updated to mirror how taxon_autocomplete
works.

Fixes #4368
Update payment state not only when order is completed

Fixes #4322
Fixes #4441
Stub out correct call in users_controller_spec to set the current user
[api] Use Rails 3 friendly syntax for authorize_for_order
[api] Stub current_api_user, not try_spree_current_user for users_controller_spec
[api] Refer to order object, not @order within LineItemsController

@order is not set in this context until the order method is called.
Properly call Product#destroy. Fixes #3659

Conflicts:
	api/app/controllers/spree/api/products_controller.rb
Include fontawesome on the list of assets to be precompiled by the asset pipeline

Fixes #4399
Using `find_each` instead of `all.each` to improve memory

This syntax will run our migration over the `Spree::StockTransfer` model in batches, which will improve performance on stores with high numbers of stock transfers.

Fixes #4473
Use `find_each` rather than `all.each`

Perform the CreateDefaultStock migration in batches to lower memory footprint.

Fixes #4475
typo fix in CreateDefaultStockMigration

Fixes #4474