restrict cost_price to admin users through the api
add uniqueness validation in spree preference
Fix duplicate sku in samples.
Order history should be reverse chronological. Fixes #5024
return 204 for PUT /orders/empty
Fix spec for ruby 2.0

With Ruby 2.0.0 p451 this was giving:

    expected: 95.17
         got: #<BigDecimal: 95.17000000000001>
Add roadmap url. Fixes #5025
Merge pull request #5032 from HoyaBoya/fix/empty_order_204_response

return 204 for PUT /orders/empty
allow specifying Kaminari page_method_name

only define custom page method if page_method_name != page to avoid recursion
Fixes #5035
Use the proper flash

This is not a success
Fixes #5034
Update Google Analytics

Updates GA tracking code to support Display Advertising. See: https://support.google.com/analytics/answer/2444872 for more.
Fixes #5030
Fix order merging. Fixes #5028
Merge pull request #4999 from vinsol/preference_validation

add uniqueness validation in spree preference
Wait ajax request a bit for backend spec fix
State machine for return_items.

Fixes #5041
Show flash errors for resource controller html requests

and not for js requests.
When a resource controller failed to create/update there was no indication of what had failed.

Also adds "with_model" gem to allow easier isolated testing of `Spree::Admin::ResourceController`.

Fixes #5011
migrataion to copy current product slug values into slug history table

Closes #5046
Added a `ReturnAuthorization.return_item_tax_calculator` class attribute that is set to `Spree::ReturnAuthorizationTaxCalculator` by default.

When `ReturnAuthorization#process_refund` is called, the tax calculator is called with all return items and tax is calculated and stored on each return item and then the refund is performed with the new total.
Taxation is broken out like this to allow easy integration with third-party tax services.

Also:

- Moved some rounding further out since it was causing small but noticeable differences in refund amounts (off by 8 cents sometimes, for example).  And increase precision of some return_items fields along with that.
- Refactored return authorization controller specs so that the spec data is more correct
- Added an additional validation to #process_refund to abort the refund if we know we don't have enough funds to reimburse the customer fully

Closes #5043
Fixed deprecation config in spec_helper.rb templates (spree_cmd)

Closes #5045
If ShippingCalculator has an empty string currency, it matches to all currencies

Closes #5038