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
[api] skip authentication before filters for states/countries so that frontend's checkout can work even with requires_authentication=true on the API

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
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 #3741

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.
Fix build script to fail if a command fails

* It can be difficult to debug an issue that occurred earlier
  because it scrolled out of the buffer. This was useful in making
  sure the build passed 100% because it would stop if any problems
  occurred.
Fix whitespace in Spree::Payment#persist_invalid
Fix invalid state in Spree::Payment spec
Remove explicit poll interval for tooltips

* The default value for this, from jquery-tooltip, is 100ms
  which seems to be fine in practice.

  During testing of the edit payment amount feature I was
  continuously using the icons, and the delay was noticeable. Now,
  granted, I was hyper-aware of the delay because I used the feature
  many times in a row I felt like when I adjusted it to 100ms it was
  almost effortless, but at the same time the response was not so
  immediate to be jarring. It still required me to make a concious
  effort to stop the mouse on the icon before the tooltip would
  respond, I can't recall it happening without effort though.
Refactor render call to use template name

* The controller name is used to infer the template name so this
  extra prefix was unnecessary.
Refactor credit_over_limit translation to be in the payment group
Refactor Spree::API::PaymentsController spec

* Update context and description names to be more consistent
* Fix whitespace to be more consistent
Refactor show_flash_error function to be simpler

* Change the flash message to fade out after 5 seconds similar to
  normal flash messages, rather than persisting indefinitely.
Refactor admin order payments spec features

* Update specs to use more consistent style
* Remove some context nesting that was unnecessary