[electrum] trezor: implement support for Shamir recovery
Summary:
Support initializing or recovering a Trezor device with a slip39 seed phrase.These options are hidden unless the "expert mode" button is clicked.
This diff does not implement recovering a wallet from a shamir seed without a Trezor device. This will be done separately.
This is a backport of electrum#5692
https://github.com/spesmilo/electrum/pull/5692/commits/3fc70bd97ab6355f07118db5a5fe1ad89682bb13
https://github.com/spesmilo/electrum/pull/5692/commits/006c6c1a58557f0aa217b9afd68f22dac917e3ca
https://github.com/spesmilo/electrum/pull/5692/commits/18209fc782c08bb4b41d878d8fdedce86d9fa309
The other two commits of this PR are already in our codebase. See https://github.com/Bitcoin-ABC/ElectrumABC/commit/590e532f26c73b1568eaef20b011099e9da9c35a
The RecoveryDeviceType enum is not used for now because there is an API breakage between trezor 0.13.8 and 0.13.9 (D16406). We can directly switch to using RecoveryDeviceInputMethod after we drop support for 0.13.8
Ref T3726
Test Plan: initialize a device and create a wallet using a Shamir seed phrase. Reopen the wallet again and check that it works as expected.
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Maniphest Tasks: T3726
Differential Revision: https://reviews.bitcoinabc.org/D17555