Create Spree::Migrations to warn about missing migrations

Everytime users boot their apps they would see a warning like:

    [spree] Missing migrations. Run `bundle exec rake railties:install:migrations` to get them.

Fixes #4080
Simplify OrderPopulator

OrderPopulator was previously taking multiple products at once. It doesn't need to do that, given that the only place it's used (OrdersController#populate) only ever passed in a single variant id and quantity.
Remove Order payments association's inverse_of

This was causing spree/spree_gateway#132, and would've caused similar issues for all non-token gateways (i.e. gateways that send CC info rather than getting a token and using that instead)

Super incredibly glad that we found this out before master was released as a real gem.
Use pure delegate in Spree::Gateway, compared with delegate_belongs_to

The provider method here is not a belongs_to association, so there's no good reason why we should be using delegate_belongs_to at all. Further more, delegate_belongs_to defines setters for these methods, but that is not necessary at all since these methods do not have setters!
Improved tracking URL generation to handle spaces in tracking numbers

Fixes #4233
use AR 4 syntax or prefix table name on some scopes

Fixes #4225
[api] Fix a spec typo in order_spec

Fixes #4242
Bump to Rails 4.0.2 in README
Do not care if frontend/backend/api cannot be loaded in extensions
Include display_price in variant return results
Variant#in_stock? now no longer takes a quantity. Call can_stock? instead

Variant#in_stock?'s method is now cached, too.
Allow halting of updating_from_params callbacks by returning false

Without specifying a :terminator to define_callbacks, its impossible to
halt the event from happening.

And yes, that is a string that is eval'd, as per:

  http://api.rubyonrails.org/classes/ActiveSupport/Callbacks/ClassMethods.html#method-i-define_callbacks

Fixes #4244
Simplify Variant#can_stock? test

This code is already tested within the Quantifier test
Fix population tests in frontend after OrderPopulator refactor
Payments with AVS response codes of 'M' are not to be considered risky

Fixes #4251
remove the guard, not needed anymore

fixes #3985
fixes #4246
[api] Return only distinct products are returned from /api/products calls
Remove PerItem calculators for CreateAdjustments promotion action

These are now taken care of with the CreateItemAdjustments calculator instead
Rename activator_id column in promotions rules and actions table to promotion_id
If there are no applicable rules, then Promotion#rules_are_eligible? should return true, not false