Fixes #4304 - RABL cache collision for variants

This uses string prefixes within each variant template to ensure unique cache keys and guarantees no collisions.

Fixes #4308
payment_method_spec: avoid INSERT in before(:all)

This before(:all) block (which is outside of the database transaction
that specs are run in) was creating four payment methods which caused
order_spec to fail occasionally.

This changes it to a normal before block.

Fixes #4372
Give variants big/small templates better names

This also fixes an issue introduced by 5f5201031195b21510cb2b7090dc46aab31c3a8a, where rabl_cache_spec was expecting stock_items to be empty, but was actually seeing them
Don't assert that find is called in ShippingMethodsController spec

We only care that it returns the object we want, not that it's called

This has the added side-effect of fixing the failing tests
fix _taxonomies.html.erb cache key

Fixes #4390
Update to support new Universal Analytics

This change is backwards compatible and supports the new ga universal analytics site property id. GA sets this to the base domain name minus www. https://developers.google.com/analytics/devguides/collection/upgrade/?hl=en_US

Fixes #4389
Explicitly pass a token through on taxonomy API requests
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.
Correct spree versions
Update contributing guide with new release policy branches
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