Distinct Order.created_between and completed_between methods

Addresses the discussion in https://github.com/spree/spree/issues/4554

Fixes #4577
Give defaults for options on product Importer
remove broken variant "deleted" scope

this "deleted" scope doesn't remove the default "deleted_at: nil" condition so it just produces a query like this:

```sql
SELECT "spree_variants".*
FROM "spree_variants"
WHERE "spree_variants"."deleted_at" IS NULL
AND   "spree_variants"."deleted_at" IS NOT NULL
```

instead you have to use the "only_deleted" scope from the acts_as_paranoid gem
see https://github.com/goncalossilva/acts_as_paranoid/blob/ae0fe74/README.markdown#filtering

example: https://github.com/spree/spree/pull/4562

Fixes #4601
Support existing credit card feature on api#checkout

about #4598
provide consistent sort order for promotions

make pagination sane for promotions.
especially true for postgres which seems to do more to keep its promise that "If sorting is not chosen, the rows will be returned in an unspecified order".
since there are no indexes on this table we just use the primary key with most recent first.

Fixes #4596
Fix thank you message on order completion

Thank you message was no more displayed since it was using a wrong
params to test when order was just completed.
This solve the issue by using flash[:commerce_tracking] param
to test when to display the message. An helper method has been
added to aviod code duplication.
Use a more relavant naming and avoid using useless
'nothing special' string as content of the flash message.

Fixes #4586
Refactor Shipments API & JS.

Conflicts:
	backend/app/assets/javascripts/spree/backend/shipments.js.erb
Remove deprecated orders/shipments api.

Fixes #4523
Implement basic callback systems on ItemAdjustments

This allows stores to hook into before/after events when the promotions and taxes are calculated for line items and shipments.

Fixes #4483.
Fix for #4234.
add jquery.alerts images to backend precompile list

Fixes #4609
make sure we use adjustment_total for the shipping adjustment migrations instead of cost
Fixes #4608
No need to define to_param in Product again

friendly_id already takes care of it
Set association_foreign_key for spree_promotion_rules_users

Probably because core default user class is LegacyUser rails would guess
the column as legacy_user_id. Green master build again
Shipment manifests viewed within the context of an order no longer return variant info

Fixes #4498
Display credit cards under payments in orders/show [api]

They're displayed as payment source. Stores using custom payment sources
can customize the payment_source_attributes displayed in the api by
setting:

    Spree::Api::ApiHelpers.payment_source_attributes.push :attribute, :other_attribute
Upgrade handlebars to 1.3.0

I noticed today that this was out of date and using a release candidate.

Probably best to upgrade it.
Speed up admin/shipping_methods with includes()

Loading the zones and calculators with an `includes()` call seems to noticeably speed up the loading of this page and dramatically reduces the page's requests to the db.

Fixes #4534
Scope Order#all_adjustments to look up adjustments only for the order

Fixes #4537
Split order_spec into some different files in an attempt to cut order_spec.rb down in size

The file was originally almost 1,000 lines long, which is a pain when you want to know what context a block is in