Switch to poltergeist for spree_backend.

Fixes #4383
Whitelist some params for canonical links. Fixes #4374
Implement Spree::Base as ActiveRecord::Base wrapper.

Moving inclusion of Spree::Preferences::Preferable away from an engine-base inclusion to ActiveRecord::Base, and instead making it a Spree-specific Spree::Base inclusion.  This is to prevent the Prefereble module from bleeding outward and causing conflicts in other Engines which may have attributes called 'preferred' on their models already

Fixes #4337
Fix superclass mismatch error.
Allow preferences to reference ENV variables.
Revert "Allow preferences to reference ENV variables."

This reverts commit e4a612c115ff2f03fea0943f2babde51a633cf8b.
Remove persist_cost which is replaced with update_amounts.
Display only payment method selected partial (backend)

Drop a bunch of repeated ids on html
Display cards as per gateway on backend new payments

Otherwise users could try a transaction against a gateway which won't
understand the cc profile id
Fix payments "Use new card" toggle in backend
space
Improve support for sending client encrypted credit card data

Some users might choose to encrypt cc info on client side and not record
anything related to credit card at all on db. See Adyen Client-Side Encryption
for example
Only check if payment source has_payment_profile?

Card info might come in encrypted so number won't be present and payment
source could be something other than a CreditCard object but still
support payment profiles
add missing model translation.

Fixes #4410
Update README to use latest stable version

Fixes #4406
Dont restart checkout_flow for completed orders

No need to destroy all shipments or set order back to first checkout
state. Currently shipments for completed orders are managed by
OrderInventory#veriry
fix race condition in order details spec

This behaved strangely because this portion of the admin displays
changes by using window.location.reload(), which wait_for_ajax doesn't
wait for (after all, it isn't AJAX). This improves the tests by waiting
for the input fields to disappear.

Should fix sporadic failures on Travis CI.
don't access Spree::Config[:site_url] at startup

Fixes #4421