include variants when loading inventory_units in Shipment#to_package

If there are 100 inventory units for a shipment, there were 100 queries for the inventory units' variants. This small alteration reduces the queries to 1.
[api] Cache products#index responses until a product is modified
[api] Shipments API now returns manifest data, rather than inventory units
[api] automatically call create_proposed_shipments before delivery step in orders API if any aspect of order has changed

For example, if a new line item is added to an order, an order will be
updated (due to a before_save callback on the line item), which means
that the response from this API template will be generated, calling
create_proposed_shipments directly before it does this.
[frontend] Cache CheckoutController#edit using ConditionalGet

Can result in a significant improvement for viewing the checkout
[frontend] Cache OrdersController#show using ConditionalGet

This reduces rendering times from anywhere between 200ms-1second (seen in Google Chrome's network tab) to ~28ms.
[api] Cache taxonomies#index results
Touch taxonomy once taxon is updated to change updated_at

This will trigger the API request to update
[api] Simplify stale? call in countries and states controller

TIL
[api] Remove caching around Orders#show, due to problems caused when CheckoutsController#next responds *too* quickly
Phase out use of Versionfile in extensions

What we now prefer people do is use a consistent branch naming scheme across all extensions, matching Spree's branch name. If the extension is compatible with 2.0.x versions of Spree, then it should have a 2-0-stable branch which would be enough to indicate this.

Related to #3230.
jQuery Validate IE9 event handle fix
[API] Checkouts API update now can take line item attributes
[api] Correct formatting in README
[api] Ensure shipping methods, shipping rates and zones are returned correctly when an order is in delivery state
[api] Don't cache config stuff... for now

In my testing of spree-marionette I was coming across a bug where there were no preferences stored in the database (which is weird, yes), and so I'm removing this caching to account for that until I can find out why that's happening.
Don't update shipping addr if use billing addr is checked

By running updateState() on shipping address form we enable those
fields and need to propagate changes from billing address to shipping
address when we shouldn't because they're already propagated server
side. We should only run updateState() on shipping form if use billing
address is not checked

Fixes #3232
Fixes #3245
Use stock_location's country for stock_location's state in stock_location factory

This is so that it doesn't create a new country and associate the state with that.
[api] Fix CheckoutController spec and ensure that selected shipping method is really selected
Pass a variant id as the variant_id parameter when creating inventory units in the Shipment factory.

This only took me 20 minutes to figure out. I am not a smart man.