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 showing unique order records if searching on attributes of associated models like bill_address or line_items

Fixes #3919
Only respond with js if .xhr? is true

Prevents user private data leak for GET requests from other domains
See discussion on rails-core mailing list
https://groups.google.com/forum/#!topic/rubyonrails-core/rwzM8MKJbKU
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]
[sample] Correctly assign products to brands in taxons

Fixes #4070