[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
NO TOUCHING!
Smarter, faster Shipment#to_package
remove return authorizations (for now)
set quantity on inventory_units
fix availability validator to consider quantity
remove order_country and remaining_packer
Remove some broken methods on Shipment

Removes line_items, and methods depending on it
* item_cost
* display_item_cost
* total_cost
* display_total_cost

The logic on line_items was broken and unpredictable. None of these
methods were used elsewhere in spree.
Create inventory units with quantity
Fix counting of inventory in Shipment.to_package
fix order_inventory
InventoryUnit#remove
Optimize Shipment#manifest using SQL counts
set_up_inventory should take a quantity
set_up_inventory uses a quantity
set existing inventory_units quantity to 1