allow shipping address with country or state attributes when creating
orders through the api
Only create promo items if order is eligible

Add a doc block to CreateLineItem.perform block to explain why it's not
suitable for Add to Cart events and explained another possible caveat

[Fixes #3275]
Don't convert taxonomy tree names to uppercase

Fixes #3241
[api] Add show action to Checkouts API
Fix race condition with product permalink generation

See this comment for a nice script on how to reproduce: https://github.com/spree/spree/issues/2714#issuecomment-19798918

Product creation in the API will now automatically be retried if an ActiveRecord::RecordNotUnique exception is thrown. This would be thrown due to the unique index which now exists on the spree_products table.

This commit also adds similar unique indexes to the orders, shipments and stock_transfers tables, although I was unable to get these showing similar behaviour to the products API in my testing.

Fixes #2714
[api] Create country+state to use in order_spec rather than hardcoding IDs
Update product_spec to check for ActiveRecord::RecordNotUnique when creating a product with duplicate permalinks, rather than a typical validation error

Conflicts:
	core/spec/models/spree/product_spec.rb
Test clicking logo in admin returns to /admin

Fixes #3221

Conflicts:
	core/spec/requests/admin/homepage_spec.rb
Remove deprecated method usage of set_table_name

This would break the core build once rails4 branch is merged into master. set_table_name is deprecated in Rails 4.

Fixes #3270
Remove confusing show_descendants configuration. Fixes #3212
Placeholders translation, 'None' translation in selectors, shipment_states translations

Fixes #3271
Logs exception message & backtrace to rails log [Fixes #3290]
Scope eligible when choosing best adjustment

When the order had a better but not eligible adjustment the store would
make all other adjustments not eligible. Instead it should scope
eligible adjustments when figuring out which one should make it to the
order

thanks to @sohara for pointing that out

Fixes #3274
Don't select backend only shipping rates by default [Fixes #3297]

As frontend users shouldn't select shipping rates only meant to be used
via backend. So Estimator by default only marks frontend/generic
shipping rates as selected

Fixes #3287
Don't ignore promo action beyond the first created

Currently Spree allow users to associate multiple actions, e.g
CreateAdjustment, to a promotion however it doesn't allow a promotion to
have multiple adjustments in the same other as the backend UI suggests.

It changes the `order.promotion_credit_exists?` api so that multiple
adjustments can be created for the same promotion even though only one
of them, the one with best amount, will be eligible.

Fixes #3262
Fixes #3276
remove duplicated :payments_attributes in attr_accessible on Order

Fixes #3294
Implemented add, receive, and cancel for Return Authorizations API.

Fixes #3220

Conflicts:
	api/app/controllers/spree/api/return_authorizations_controller.rb
[api] reset permalink to nil when ActiveRecord::RecordNotUnique thrown in ProductsController
[api] Specify :id parameter for add, receive and cancel tests in return_authorizations_controller

This fixes the currently failing tests
Add missing translations for option_type_placeholder and variant_placeholder