better/faster capybara select2 macros

Existing select2 (and variants) used sleep(1) to wait for the select2
dropdown to appear and then executed some javascript to select the
desired option.

This commit replaces that with a standard capybara page.find(...).click.
As well with avoiding the sleep(1), this raises an exception if the
desired option doesn't exist.
Let rails handle RecordNotFound in orders controller

Fixes #4044

Conflicts:
	backend/app/controllers/spree/admin/orders_controller.rb
Spec, fix for not filling backorders on incomplete orders [Fixes #4056]
listing_spec: use active_support date functions

This could fail if run in the evening when running specs in timezones
with negative offsets.

Using Time.current and Date.current ensures values entered are in UTC.

Fixes #4038 AND probably the CI build.
Use flash.now for coupon errors

Fixes #4034
[backend] nil check for shipping_method in orders/_shipment

fixes #4025
Show destroy flash messages in admin backend

Fixes #4032
Really always include the confirm step preference

Fixes #3945

Conflicts:
	frontend/spec/features/checkout_spec.rb
Don't show confirmation step if payments are empty
[frontend] Set flash.now for gateway errors in CheckoutController

Fixes #4034
[frontend] Use flash.now for coupon application error in OrdersController

Otherwise this will carry over to the next request, which is not fun.

Fixes #4034
Use new show_flash erorr in payments/edit.js.coffee
Support only Rails 3.2.16 and above for 1-3-stable

A forced upgrade for people still using 1-3-stable. Don't want them to be hacked because they're using an older version of Rails!
remove relation from simple scopes as it removes chain scopes query and returns all products

Fixes #4062
Ensure shipment numbers are 11-chars, not 9

Fixes #4063
[sample] Correctly assign products to brands in taxons

Fixes #4070
Change confirm step label to uniform it with other steps

Fixes #4075
Leave comment as to why we need to do next_transition.run_callbacks in OrdersController
Only require email when past cart or address

This means that an email field can now be provided on either the cart or address forms

More importantly, the 'state' field will now say 'address' when users reach that state, rather than 'cart'

Fixes #4079
[api] Remove test checking for email validation failure after cart

No longer required since 177fecf32cce98b78b56d6bef8d01ab137ea0726