Use rspec render_template for layout specification [Fixes #2974]

Improve product spec, too many repeated spec and create(:product) calls
Stock::Estimator should select the most affordable shipping rate by default

Fixes #3137
Stock::Estimator sorts shipping rates by cost

Related to #3137
Use shipping_method.adjustment_label in Shipment#ensure_correct_adjustment

Fixes #3138
Include ENV['RAILS_CACHE_ID'] within preference cache keys
Specify class name for calculator association in calculated_adjustment

Otherwise, top-level classes that include this module will have an association that looks for ::Calculator, rather than Spree::Calculator
Update to latest selenium-webdriver

In a (vain?) attempt to see if frontend stops hanging
pass country_id as data to jQuery.get

if your default url options happen to include ?locale=en then
the previous implementation would end up generating:
api/states?locale=en?country_id=49 instead of
api/states?locale=en&country_id=49

Fixes #3108
compare strings to strings when transitioning to shipment states

Fixes #3105
Require Shipping Calculators to Inherit from Spree::ShippingCalculator

[Fixes #3116]
Add #in_stock? method to Spree::Variant

As proposed by @jdutil in spree/spree_wishlist#37

[Fixes #3163]