Fixes #551
For the simplest use case of a wallet with one external signer and “PSBT Controls” disabled in settings (the default), the send dialog will behave the same as when using a wallet with private keys. I.e. there’s no “Create Unsigned” button.
When PSBT controls are turned on, you can now actually make a PSBT with signing it; before this PR that button would trigger a sign event and would broadcast the transaction.
In case a multisig, the Send button will sign on the device, and then fall back to presenting a PSBT (same behavior as before #441).
This PR starts with two refactoring commits to move some stuff into a helper function for improved readability in general, and to make the main commit easier to review.