[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.