Update payment risk assessment, and fix broken specs. Fixes #4630
Ensure shipments are also destroyed when the order is emptied.

Conflicts:
	core/spec/models/spree/order_spec.rb
drop credit_cards first_name and last_name fields

It was intended for this to happen eventually.
It's been causing confusion for us and some others in a couple ways so it seems like a good time to drop them.

Fixes #4787
Re-choose best available promotion when an order changes

Before this change, we could end up with multiple eligible promotions on
the same order. This happened because changing the order (for example,
by adding line items) rechecked the eligibility of promotions,
potentially making multiple ones eligible, but forgot to re-choose the
one best promotion.

This change adds a call to the logic that chooses the best promotion any
time the ```OrderUpdater``` recalculates adjustments.

Adds test to ensure we do not apply multiple line item promotions

Spec and style improvements

Runs two specs twice with different ordering to ensure the order in
which promos are applied doesn't matter. Also cleans up some style
issues and removes an unnecessary stub.

Add specs for taxable items + promos

Correctly limit a promotion to its maximum amount

You should never be able to reduce the price of an adjustable to less
than zero. Thus, we have to guard against a promo applying a discount
larger than the pre-promo amount.

However, as we also do recalculations, we cannot just use the
post-adjustment amount as a limit here. We have to use the
pre-adjustment amount -- i.e. pre-tax, pre-promotions. That is correct
because a) tax gets calculated on the post-promotion amount and b) there
can only be one active promo per line item.

fix for line_item amount instead of price with associated spec

Conflicts:
	core/spec/models/spree/promotion_handler/coupon_spec.rb

CreateItemAdjustments handles only LineItems

Fixes #4675
Fixes #4775
Fixes #4799
Payments with a cvv_response_message are not necessarily risky.
Remove spec that is no longer true.
make sure we fail fast and exit when a spec fails
Javascript fixes for IE8.

Conflicts:
	core/app/views/spree/shared/_routes.html.erb
Loosened the version required for select2-rails.

This version of select2-rails relies on sprockets ~> 2.0.0 (via sass-rails) whereas rails (~>4.1.0) relies on sprockets-rails (~>2.0) which relies on sprockets (2.12.1). A later version of select2-rails removes the dependency on sass-rails, which fixes the dependency conflict.

Tightened up version range for select2-rails.

My previous change would have allowed major version changes. Version 3.5.0 of select2-rails was the first version to not include sass-rails.

Fixes #4804
Update backends adjustments controller to fix order.update! call.

Fixes #4599
Fixes receiving RMA's when inventory tracking is turned off.
Dont destroy all order payments in api/checkouts

Can't see why we would do that, no spec coverage or git history to
explain that behaviour either

Conflicts:
	api/app/controllers/spree/api/checkouts_controller.rb

Fixes #4424
Improving performance of migration add_line_item_id_to_spree_inventory_units

I noticed when I ran these commands on the console that the line

    shipments = Spree::Shipment.includes(:inventory_units, :order)

would load a tremendous amount of stuff from the database, negating the performance savings by the `find_each` method. This may even be a Rails bug. Putting the `includes` and the `find_each` into the same line fixed performance issues immediately.
Update hash syntax.
Drop Spree::Core::TokenResource

None of spree components use that feature except for the token attribute
itself which we could just move to Order so we can run less things when
creating an object

Copy tokens to spree_orders.token via migration
Removing order token behavior for a reusable guest_token.

Fixes #4736
Remove TaxRate.default method.

Fixes #4833
Calculate Order#uncaptured amount on payments on the fly.
Fixes #4831
Fixes #4834
Fixes #4747
Bump rails to ~> 4.1.1
Refer to selected shipping rates directly

This means that rates can be available on shipments, but not shipping methods

Useful for extensions like spree_easypost which only set rates and don't have shipping methods