Fix duplicate address records being created during the checkout process.

The bug happens when a user fills out their address details in the address step, continues to the delivery step, goes back to the address step, and continues to the delivery step again. When the user continues the checkout process the addresses are created as new records in the database rather than being updated. This is because the id parameter isn't permitted by the controller, without which the existing records cannot be updated, resulting in new records being created for every change to the order addresses.
adjustment_state (icon) returns 'fa fa-lock'

The adjustment_state helper returned `<span class="lock"></span>` which is not the correct html for an icon.

I edited the helper and it returns the right classname now.
So the icon is visible again.
New paradigm for customer refunds

Initial step in a larger piece of returns & exchanges improvements.

Major

* new "refunded" state for return authorizations
* separation of refunds from payments
  * add a new refund model
  * use "refunds" in place of negative payments
  * stop generating order adjustments when receiving return authorizations
      * we no longer need to create order adjustments in order to provide refunds
* updated admin ui
  * added a "refund" button in the return authorization flow
  * list refunds along with payments
  * add payment identifier column to payments list

Minor

* extra validation on `ReturnAuthorization#force_positive_amount`
* improve some existing specs by using real `ActiveMerchant::Billing::Response` objects instead of doubles

Generated by @jordan-brough & @richardnuno

Fixes #4883
Take adjustments into consideration when calculating RMA totals

* Added #total_per_item to line_item that calculates total per item including adjustments
* Added new column in the RMA admin screen to display the total per item for a variant
* Updated javascript that suggests the RMA total to use the total per item when calculating

Fixes #4895
Only destroy tax adjustment for open order when the associated tax rate is deleted. For closed order just nullify the source_id.

Update line_item & order when adjustments are deleted.

Add rspec tests to cover cases where adjustments get (or not get) destroyed when taxrate/promotion is deleted.

Move deals_with_adjustments to a separate mixin.

Add new mixin to core

Revert previous changes to remove unnecessary tests.

Remove order.update! and simplify rspec.

Fixes #4828
Fixes #4771

Conflicts:
	core/spec/models/spree/tax_rate_spec.rb
Rework ReturnAuthorization-InventoryUnit relationship

* Create a join table: `ReturnAuthorizationInventoryUnit`
  * Allows inventory units to be part of multiple RMAs (e.g., if an initial RMA was cancelled) while still retaining historical data
  * Migrate existing data into the new table
  * Drop the `inventory_units.return_authorization_id` column
* Start using nested attributes for adding/removing InventoryUnits to ReturnAuthorizations
  * Remove the `API::ReturnAuthorizationsController#add` endpoint (use nested attributes instead)
* Pave the way for exchanges with an `exchange_variant_id` field
* Update the admin interface for `Admin::ReturnAuthorizationsController`:
  * No longer group inventory units by variant.  This will be important for allowing per-unit data, such as for exchanges

Created by @richardnuno and @jordan-brough

Fixes #4907
Fix failing payment spec.
Merge pull request #4900 from reinaris/patch-3

adjustment_state (icon) returns 'fa fa-lock'
Merge pull request #4506 from MattFenelon/address_checkout_bug

Fixed duplicate address records being created during the checkout process
fix address spec
Call to_s instead of underscore on payment_method_id

Cant think of a reason it were always calling underscore on an id. That
line seems to be around since forever
Rename return_authorization_inventory_units to return_items

Shortening the name of return_authorization_inventory_units since it was becoming a nuisance.
Fixes #4920
When creating shipment assign orders shipping address. Fixes #4915 Fixes #4654
fix Order#reload method signature

ActiveRecord::Base#reload accepts an `options` argument: https://github.com/rails/rails/blob/v4.1.4/activerecord/lib/active_record/persistence.rb#L386
This code was failing for me:

    >> Spree::Order.first.with_lock { }
    ArgumentError: wrong number of arguments (1 for 0)
    from /Users/jordan/.rbenv/versions/2.1.2/lib/ruby/gems/2.1.0/bundler/gems/spree-287d40eaf236/core/app/models/spree/order.rb:592:in `reload'
Payment methods should be scoped to available.
Info for products with multiple variants

Setting SKUs for products with multiple variants can be confusing for novice users.

This adds a note on the product form in the place where the SKU field would normally appear. It lists several variant SKUs and invites the user to manage product variants.

Fixes #4897
Bump to Rails 4.1.4
Added without_children = true in taxon autocomplete API Call

We do not need taxon children in autocomplete of product taxons. As we were loading taxon children the response of the API call was slow.

Fixes #4903
Optimize available_countries

Use .sort_by so that we only run .parameterize once per country.

Fixes #4899
Destroy associated adjustments when order is changed to move out of taxable zones.

Fixes #4840
Fixes #4839
Fixes #4916