[electrum] Implement SLIP-0039 wallet recovery.
Summary:
This implements recovery of a wallet from a Shamir's secret-sharing scheme.
Current limitations:
- we can only recover a wallet from an existing set of mnemonic shares, we don't generate new ones
- the mnemonic shares are not saved to storage (wallet file), so users can't see their "seed" via the "Wallet > Show" seed menu (the action is disabled in the GUI)
- we don't autodetect the seed type, the user needs to click the option button and select "slip39" explicitely
This is a backport of electrum#6917 and electrum#9059
Depends on D17576
Test Plan:
python test_runner.py
Import a wallet from a SLIP39 share, test that it works (receive a send a transaction), close it and reopen it and test again (make sure the wallet file has all the info needed to open the wallet). Test the derivation path scanner.
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Differential Revision: https://reviews.bitcoinabc.org/D17577