Refactored Core Order Checkout

Removed temp variables

Added tests to (remove|find)_transition

Added defensive programming approach into find_transition

Fixes #3630
Use delete_all to destroy all related product properties when deleting a property

Fixes #3610
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
Fix order deprecation on association.

Conflicts:
	core/app/models/spree/order.rb
Use order option not a scope for Rails 3.2.x.
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.
Lets not run ci against sqlite3 to speed up travis builds by focusing on production databases.
[backend] Consistent no resource found. Fixes #3607
[api] Empty an order using order.empty

Fixes #3611
Set promotion rules before app initializer

And add a check in Promotion::Rules::User so associations are only
loaded once the app has set Spree.user_class. That allow users to set
their promotions rules on the spree.rb initializer again. e.g.

    Rails.application.config.spree.promotions.rules = [Spree::Promotion::Rules::Product]

Fixes #3599
Improve message for missing shipping rates in checkout

It feels pretty weird to have a default message that tells the customer
to "choose a different shipping address". I think we should just tell
explictly that the store cannot come up with any shipping rate. That
might be either because the shipping address is not covered or that the
taxes associated with products in cart are not properly associated with
any shipping method

Fixes #3590
Update order_decorator.rb

code was conflict, must be fine now.

Fixes #3640
Fix deleting of images. Fixes #3562