Make sure that shipment for resumed order can be set to ready

Fixes #2317
Remove commented out line from admin/products_controller
Fix issue where PerItem calculator would fail on promotions that had rules which did not respond to the "products" method

Fixes #2322
[promo] Fix product rule

There's a couple of things to note in this commit.

The first is that I've removed tokeninput.js. We *were* using it for autocomplete, but we're now using select2 for that.

There's now a product searching 'API endpoint' in Core. This is a 'necessary evil' for the product searching to work, but will be removed when the changes from #2225 are merged.
The select2 helpers within capybara_ext have been massaged a bit to correctly scope calls to their relevant elements, using Capybara's API more rather than depending on ugly JavaScript and sleep statements, and gotten closer to what I'd call sane code.

In promo, the user picker code has been moved out into a new file at user_picker.js, and the product picker lives at product_picker.js. This is because dumping all your code in one file is what we did back in PHP-land, *not* what we're going to do in Spree.

The user picker JS code is now also run when we create a new promotion rule for a user. This means that you won't need to refresh the page to see the field any more. Consider it a freebie.

Finally, we're no longer testing the promotion rule for products using just model calls. We're actually stepping through the flow, as a user would, which is much better.
Fix select2 helper usage
Implement better guessing for selec2 and its matching
Use correct from value in products/edit/taxons_spec
Add targetted_select2 helper for those tricky to reach select2 boxes
WIP: fixing customer_details_spec
[dash] Redirect to admin path if JirafeException is thrown
Revert "[dash] Redirect to admin path if JirafeException is thrown"

This reverts commit 9657d3d38e1f13cb338b9cd848f71e594929e6d4.
Fixing customer_details_spec select2 nonsense

Target dropdown using CSS class for customer details spec

Select2 is fun.

Use jQuery's contains helper in select_select2_result as its seemingly more reliable than a dodgy xpath
Add wait time for select_select2_result

Conflicts:

	core/lib/spree/core/testing_support/capybara_ext.rb
[dash] Fix configured expectation in overview_controller_spec
Use select2 where appropriate in promotion_adjustments_specs and remove a useless test
Revert "Fix incorrect shipment calculation"

This reverts commit 1dd1b070dd44bf31384fd905b80ed0819c4326de.

As per comment:
https://github.com/spree/spree/issues/1606#issuecomment-11440193 and
issue #2328.
Fix and improve price adjustment total rendering

price_adjustment_totals returned a hash of labels to BigDecimal amounts.
Views were incorrectly calling .display_amount on BigDecimal, raising an
exception.

This changes price_adjustment_totals to return Money objects rather than
BigDecimals, and fixes the views.

Fixes #2331
Fixes PercentPerItem calculator equation

Admin users tend to write integer values to apply percent discount in
promotions section. So 10 would be the expected input if 10% on each
product is what should be applied. PercentPerItem calculator expected
users to enter 0.10 to apply that behaviour.

Fixes #2327
Depend on Ransack 0.7.2

This is due to ernie/ransack#176.
Ensure that email addresses with underscores can be searched for