Refactored Core Order Checkout

Removed temp variables

Added tests to (remove|find)_transition

Added defensive programming approach into find_transition

Fixes #3630
Clear tax adjustments only in TaxRate#adjust

It doesn't make sense to remove all line item adjustments from
TaxRate#adjust because price adjustments might come from other classes
such as ShippingMethod and PromotionAction

Fixes #2981

Conflicts:
	core/app/models/spree/order.rb
Add sample gem to travis config.
initial port from 1-3-stable of spree order import api, updated for stock and adjustment states
Adds update_line_items
Introduce better approach for regenerating shipments

Instead of recreating shipments every time customers change order items
it only destroy shipments, if any exists, and put order state back into
address so users are forced to transition the order again from address
to delivery and still recreate shipments properly

Another minor change on CheckoutController was necessary. We need to run
`setup_for_current_state` only after all other checks are done. e.g.
authentication, valid order state. This is so that customer don't get
their items removed by the Differentiator. Current specs should cover
all possible scnearios I could think of.

Fixes #3497

Conflicts:
	api/spec/controllers/spree/api/orders_controller_spec.rb
Misc layout fixes for shipping and stock pages.
[backend] Consistent no resource found. Fixes #3607
Grab deleted variants from a inventory unit

Needed after paranoia gem introduced a default_scope in variant model

Fixes #3628