Refactors after_cancel to allow the Mailer method to follow the pattern set in other models.

Allows OrderMailer.cancel_email be sent asynchronously with delayed_job#handel_aynchronously

Fixes #3759
Introduce Order shipping_eq_billing_address method

This might help both frontend and backend to figure out whether the
use_billing checkbox on address forms should be checked. API users
should benefit of it as well

Related to #3758

Conflicts:
	backend/app/views/spree/admin/orders/customer_details/_form.html.erb
[api] skip authentication before filters for states/countries so that frontend's checkout can work even with requires_authentication=true on the API

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

Fixes #3762
Optionally trigger an accessibility build.

Set the WEBDRIVER environment variable to `accessible`

[Finishes #3374]

Related to #3414
Fix accessibility errors in search input.

[#3374]

Related to #3414
Add inaccessible tag to failing features.

Related to #3414
StockItem#process_backorders will now process stock when it is adjusted positively (-3 => -2)

Fixes #3755
[backend] make order number in page title a link
fix shipping rates refresh losing current rate when refreshing rates

Fixes #3766
Change the default value of `states_required` to false

The default value of states_required column of :spree_countries table is
true which makes the configuration option
Spree::Config.address_requires_state essentially a no-op. Therefore,
setting the aforementioned configuration option to false is not enough
to remove the state requirement of a country.

This commit adds a migration for the :spree_countries table with the
name ChangeStatesRequiredForCountries which changes the default value of
states_required to false.

As the states_required value is now false, this value has to be set
explicitly to true for federated states. Using the list of federated
states from http://en.wikipedia.org/wiki/Federated_state set the
states_required value of these states explicitly to true.

Fixes #3709
Fixes #3740

Signed-off-by: Ali Polatel <ali.polatel@ozguryazilim.com.tr>
Erased the blank space in the comment between <% and #

with the extra space it yields a sintaxis error

Fixes #3769
Fix force_non_ssl_redirect redirect location

When visiting an https page with Config[:force_non_ssl_redirect] set to
true, the redirect was to /orders/populate?controller=home.

Changing this to simply preserve `request.fullpath` fixes this.

Fixes #3779
[core] setting states_required => true required since d9f7bce.
Apply tax charges to line items for an order, rather than the order itself
Comment out choose best promotion adjustment for now
Add migration for re-arranging adjustment fields
Adjustment.shipping scope now picks up adjustments for shipments
Default tax calculator now calculates taxes for shipments and never for orders
Order total now comprises of order.item_total + order.shipment_total + order.adjustment_total

This will need to be refined later to be:

(order.item_total - order.item_adjustments) + (order.shipment_total - order.shipment.adjustments) + order.adjustment_total
Shipments no longer create a single adjustment when just one value in a field on the record will do