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
[api] Return *all* the payment attributes in the order payload
Wave goodbye to Spree.routes

Say hello to Spree.mountedAt and Spree.pathFor.

Spree.mountedAt will tell you the relative path that Spree is mounted at.

Spree.pathFor allows you to make your own *magical* Spree URLs:

Spree.pathFor('/api/checkouts/R123456789')

No more Spree.routes mumbo jumbo
Remove Spree.routes file in backend
Use apply_coupon_code route helper in backend/adjustments.js
Return permissions for orders within the API results

This allows us to determine what information / buttons to display on the interface for an order