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
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
Sample should only create Store if none exists yet

There's a migration which already create a store record. Creating it
again on the samples breaks the spree install due to validation on
Store#code uniqueness
Do not attempt to create a store with 'spree' code if one already exists
[backend] Always show 'Tracking' label on shipments

A couple of the backend specs were failing because this label wasn't around
Revert "[backend] Always show 'Tracking' label on shipments"

This reverts commit cab88fa391244fa02ca74a1eb3c1b88c26d8394b.
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
Return state_text within address responses

This way, stores cna have an easy way of displaying what state users have chosen
[api] Allow users with read-only access to access /api/orders/:num