In D14569 I forgot to make sure that keystores also provided pubkeys as bytes in keypairs. As a result, I broke transaction signing for most wallet types.
Fix this by making get_tx_derivations return pubkeys as bytes. These returned pubkeys are then used in SoftwareKeyStore.sign_transaction to build the keypairs before calling tx.sign, and now they are in the correct type.
For ImportedKeyStore, fix the get_pubkey_derivation method to correctly deal with x_pubkey as bytes. This was missed in D14455