Update item count and totals on Order#merge!

Fixes #4610
Capybara helpers should be available in extensions by default.
[frontend] Load taxon if params[:taxon] exists in ProductsController

Fixes a small bug where searching *twice* for the same term results in the taxon 'scope' being forgotten
Speed up admin/shipping_methods/_form with local var

I saw [almost 200](http://en.wikipedia.org/wiki/List_of_sovereign_states) calls  to `Spree::Zone Exists (0.3ms)` and thought there must be a better way.

Here we put the `@shipping_method.zones` into a local variable so we can hit that instead of the db.

Notes:

* The `to_a` method is necessary to force Rails to evaluate the `zones` scope. Otherwise we still get hundreds of db calls.
* If we want to, we could always replace the array of `Zones` with an array of `ids` -- replacing `to_a` with `.pluck(:id)` and having the checkbox tag read `include?(zone.id)` instead of `include?(zone)`. However I'm not sure this additional change is necessary.

Fixes #4535
No longer use insufficient_stock_lines in view

Fixes #4665
Fixes #4664
No longer caching insufficient_stock_lines

Fixes #4664
Fixes #4666
Stock::Quantifier must take a variant, not an id

@brchristian pointed out that the previous resolve_variant_id logic was
broken when a variant had been deleted.

This removes the resolve_variant_id private method from Quantifier, and
reuqires that a variant object be passed in. Finding associated variants
should be the resposibility of the caller, and the code to load a
variant unscoped need not be here.

Fixes #4660
Call spree_orders, not orders in Spree::UserReporting

Fixes #4644
Remove unused Variant#gross_profit method
Memoize Order.tax_zone.

In our app, this speeds up GET /checkout/update/address
from 1 minute, 15 seconds to 2 seconds.

Fixes #4676

Conflicts:
	core/app/models/spree/order.rb
Assign request headers to Payment on checkout

This might come in handy for some gateways, e.g. Adyen, actions that require
data such as user agent and accept header to create user profiles. Previously
we had no way to access the request headers from within a gateway class.
Master should be made out of stock when its variants are created. Fixes #3767
fix failing specs for #3767, make sure the master product factory starts with some stock on hand.
fixed duplicated rows id's and name when selecting properties from prototype

Fixes #4155