Associate default user address in pre-transition callback

Two advantages:

1) Centralizes this logic, as we want this to happen whether you create
an order from frontend, backend or API.

2) Waits until the last possible moment to assign an address and will
thus get the most recent default address, rather than the one at the
time the cart was created.

This is as an alternative to [#4789](https://github.com/spree/spree/pull/4789) and based off the IRC discussion with @JDutil, @athal7 and @huaxito. cc/ @nhippenmeyer