Only restock on_hand inventory units

Example: Spree restocks items once you cancel an order. However it
shouldn't add stock (restock) items from backordered inventory units.

Conflicts:
	core/spec/models/spree/shipment_spec.rb
Restock items but dont process backorders for canceled orders

Fixes possible issue where canceling an order with backordered inventory
units would make other orders inventory transition from backordered to
on_hand. e.g.

    - create two separate orders of the same item at the same stock location
    - both orders will have shipment state of backorder
    - cancel one of the orders
    - the second order inventory will transition from backorder to ready

Now the second order inventory remains backorder
Only show risk analysis section if there have been payments for this order
Fix a "United States of Foo" in a test

The country factory used to generate "United States of Foo", but that
was corrected in 81898b1. With the current select2 helper, this is a
silent failure (the select2 menu is left open) as it was already the
default.
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.

Fixes #4043
Let rails handle RecordNotFound in orders controller

Fixes #4044
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
Validate presence of name in CreditCard
Fix CreditCard sample data
Adding support for spree_xhr_post, spree_xhr_put, spree_xhr_delete

Fixes #4071
use the new line_item_description_text(line_item.description) method.

Removes all the deprecation warnings.
Fixes #4066
Backend taxon controller now using Spree::PermittedAttributes

Fixes #4069
Drop deprecated 'find_by' api to fetch user api key
Remove lib from autoload_paths

We don't want everything inside lib to be autoloaded, factories and test
helpers for example. Applications and extensions should manually require
what they need within lib (as it's already done most of the times
hopefully)
Fix bug when spinner is created every time progressbar is displayed
[Fixes #4065]
[backend] nil check for shipping_method in orders/_shipment

fixes #4025

Conflicts:
	backend/app/views/spree/admin/orders/_shipment.html.erb
Show destroy flash messages in admin backend

Fixes #4032
Really always include the confirm step preference

Fixes #3945
Add name_on_card translation

The frontend checkout spec was complaining about this
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