Avoid invalid query "SELECT DISTINCT DISTINCT" in order search

Weird issue. The double DISTINCT seems to be added by kaminari, couldn't
reproduce it in a spec or in clean rails app

e.g. This query would also result in the same error (or any query
similar within Spree)

    Shipment.where(inventory_units: { id: "a" }).includes(:inventory_units).uniq.page(1).to_a
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
add a test for always_include_confirm_step
Really always include the confirm step preference

Fixes #3945
Add customer_id to gateway options

:customer and :email are both the email, it could be useful to uniquely
identifiy a customer on the gateway

Fixes #4051
Permit name to be passed through in source_attributes
Don't show confirmation step if payments are empty
[frontend] Set flash.now for gateway errors in CheckoutController

Fixes #4034
[frontend] Set flash.now for gateway errors in CheckoutController

Fixes #4034
Use new show_flash erorr in payments/edit.js.coffee
No longer fill in backorders for incomplete orders (i.e. abandoned carts)

Fixes #4056
Make the parameters consistent across orders#create and orders#update

Fixes #4057
Adding support for spree_xhr_post, spree_xhr_put, spree_xhr_delete

Fixes #4071
Backend taxon controller now using Spree::PermittedAttributes

Fixes #4069
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
Fix bug when spinner is created every time progressbar is displayed
[Fixes #4065]