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.
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