Use evaluate_script instead of execute_script

evaluate_script was meant to be used for these kinds of situations.

Fixes #3894
Clarify how spree accepts pull requests, may need to be cross committed to the docs in spree-guides is support for the change is present.

Discussed in #3894
Specify class name for users association in Promotion::Rules::User
Update option_type for has_many product through

Needed for search from option value.

Fixes #3910
Added Kaminari call to add rel next/prev to head

Fixes #3903
Bump activemerchant to 1.41.0
Persist search fields across requests for sales total report

Fixes #3906
Make product variants thumbnails selection more specific in JS
Sorts country list correctly with accents

Fixes #3911
Reference address html elements by id only
Allow frontend address js methods to be called anywhere
Destroy shipments in api/line_items_controller when needed

Fixes #3914
Set state_name when state record not found [api]
Scope state per country on api import script
Add 'currency_sign_before_symbol' configuration setting

Allows you to determine if you want himBH10.00 or -0.00. Default is the latter.
[backend] Fix issues where elements sometimes would not be found with Capybara

This was *only* failing when running locally. Slightly annoying.

Turns out Capybara does not support nth-child(<num>), so we have to work around that. Work around is easy enough. Turns out then that the selenium webdriver driver does not support that work around. Hmpfh. So now we have both syntaxes used interchangeably depending on the example metadata stuff.

Conflicts:
	core/lib/spree/testing_support/capybara_ext.rb
Fix money check in promotion_adjustments_spec
Simplify Shipment#to_param code

(lol)
Switch from using * 100 to money.cents

This is the same fix as [#2930], but in a few more spots.

Change-Id: Ic4104c6ab3fa98a4301bc7785241dbf16fcd3b8c

Fixes #3917
lock down aws-sdk version due to https://github.com/aws/aws-sdk-ruby/issues/273

Fixes #3924