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
Merge branch 'expedited-exchanges' of https://github.com/bonobos/spree
Extract last_incomplete_order to method.

Extracting this logic to its own method allows store maintainers (i.e.
me!) to override this functionality to retreive orders using the logic
that makes sense for their customized version of the store. As an
example, you can override this to return nil to never do order merging,
or place additional restrictions on what the last incomplete spree order
is for a specific user.

Fixes #5177