Use Rails 4.0.4 in README
Money no longer includes Monetize methods. https://github.com/RubyMoney/money/issues/381

Conflicts:
	core/spree_core.gemspec
Add documentation for process of keeping fork maintainable against spree
Create unique rabl cache keys for variant templates to avoid cache collisions
Allow stock items to only touch their variant after save if their in_stock state changes

Currently when a stock item changes its count on hand (e.g. an order is placed), it touches the related variant, which touches its related product (thus invalidating product cache). For users that do not show inventory counts on their product page, this code enables the ability to keep product page cache warm until a stock item changes its in_stock state, rather than on every purchase of that stock item.

Fixes #4299
Update variant.v1.rabl

Need display price and in_stock
This is an attempt to integrate Admin Apply Coupon Code to Spree 2-1

It is a feature that was added to master with the introduction of Radar's apply_coupon_code API change.

However for our Spree-2-1, we have our own version in Spree-Backend. As such, this PR could not be introduced as cleanly as liked. So what has been done is:

1) Bring in only the front end JS/ERB changes
2) The bare minimum logic on order and promotion models for the can_apply_code? method to work
3) Changes in the adjustment coffee for how errors are displayed.

TODO:

1) We might need to move the api code stuff out of Spree Backend and into our Spree Fork
2) Try to get it into Spree 2-1 itself

Either option will make this more testable with the API code necessary for this change all in one place.

manual cherry-pick of https://github.com/spree/spree/pull/3859

debug

debug

fix for show_flash_error not existing in spree coffeescripts

do it right

re-apply the can_apply logic and dependency on promo change
update totals on line item changes

Conflicts:
	api/app/controllers/spree/api/line_items_controller.rb
Allow for order_number param to match up order token with requested order

Fixes #4454
Update readme with improved process description
Fix issue where payments can get their credit cards disassociated from them.

This was initially discovered when integrating with the paper_trail gem, which
calls dup in an after_update to try to capture the changed state of the
object, however, this could happen elsewhere and it is good to be
defensive here.
2.1 updates for payments after_initialize fix