Fix duplication of spree option values when product is cloned

Fixes #4420
Fixes #4417
Bump to 2.1.5
Bump to 2.1.6.beta
[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
Remove stray jbuilder file
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
Refactor API user loading out to own method.

This simplifies the logic around what the current user is.

There is now an assumption that the current logged in user is user to
use permissions for.  The secondary user is the user whose API key is
specified.

If both an API key are specified, and a user is logged in, the logged in
user takes precedence.

Fixes #4440

Conflicts:
	api/app/controllers/spree/api/base_controller.rb
Remove authentication check.

This authentication check is performed in a before_filter only when
requires_authentication is true, so it should not be false here.

Fixes #4440
Remove order_token method.

It is specified in base_controller and is being overridden
unnecessarily.

Fixes #4440

Conflicts:
	api/app/controllers/spree/api/addresses_controller.rb
	api/app/controllers/spree/api/orders_controller.rb
Test order authentication.

This code was previously untested.

Fixes #4440
Authorize an order through cancan.

Fixes #4440
Integrate API key checking into authenticate_user

It doesn't really do much currently.

Fixes #4440

Conflicts:
	api/lib/spree/api/testing_support/helpers.rb
Stub out correct call in users_controller_spec to set the current user
Use stub_model rathen than mock_model

Make rails 4.0.4 build happy

Conflicts:
	core/spec/models/spree/promotion_spec.rb
Save Asset rather than touch

spree_assets doesnt have timestamps fields and as of rails 4.0.4 it wont
touch associations anymore for models that dont have timestamps fields
Properly call Product#destroy. Fixes #3659
Include fontawesome on the list of assets to be precompiled by the asset pipeline

Fixes #4399
Set charset=utf-8 on api default Content-Type

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