Reference address html elements by id only
Destroy shipments in api/line_items_controller when needed

Fixes #3914

Conflicts:
	api/app/controllers/spree/api/line_items_controller.rb
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
[backend] Fix failing test in payments controller spec by using the right number
[frontend] use correct class to check cart total in coupon code spec
Simplify Shipment#to_param code

(lol)
Penderize annoying frontend test
[backend] Convert payment method ID to string in payments_controller_spec to fix text
Fix negative symbol in promotion adjustments spec
Revert "[frontend] use correct class to check cart total in coupon code spec"

This reverts commit fe0a86241d8703cc2604026b55b7da09fd93ebe5.
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
Set cc_type server-side in case of js failure

Fixes #3918