Fix load_user_roles. Fixes #5141
Mark inventory units as shipped in order importer.
Allow posting to ResourceController without parameters

When the associated model doesn't require any attributes.
Needed this for some returns & exchanges stuff.
Similar to 3be886f7de8a2f8515633c4d1d218140dc4373bc

Also, beef up ResourceController specs a bit.

Fixes #5158
Create a default calculator to determine a return item's default refund amount
Fixes #5162
Reload to make sure shipment.inventory_units have the latest status so that shipment.backordered? return correct value
Fixes #5163
Enhances ability of extensions to customize line items and the entire cart composition process.

Fixes #5087
Extract current order params to a function.

The parameters used to find and create orders is duplicated in 3 places.
Extracting them to a function reduces duplication, and will allow store
maintainers to place conditions on what makes an order unique. An
example would be store restrictions like spree-multi-domain, that
currently have to use an ugly module_eval.

Fixes #5164
Updates changelog for extension options.

Fixes #5167
Expedited exchanges

When a return authorization is saved
Given a return item has a requested exchange
Then an exchange shipment for the exchange items for the return authorization are generated immediately

Given an exchange shipment has been generated pre-return
Given a customer has not returned their item after X days
Then create a new order with the exchange shipment and capture payment for the full amount of the items