[electrum] print a less alarming error when the wrong app is open on a Ledger device
Summary:
Previously if the ETH app was open on the device when opening the wallet, client.get_xpub -> client.checkDevice() in force_pair_xpub would raise a RuntimeError, which would be caught and cause the following alarming DeviceUnpairableError to be printed in a dialog. Raise a new custom DeviceNotInBitcoinCashModeError instead with a more helpful message, as we now what the cause of the issue is.
And when the BTC app was open, an unhelpful "Exception: Invalid status 6e00" dialog would show up. Handle this as well with the same error.
If the status is 0c6D00, it could also be caused by a compatibility issue with a newer firmware or BCH app version. In that case, print the full error message.
Test Plan: Try the various scenarios described above, check the usefulness of the error message
Reviewers: #bitcoin_abc, Fabien
Reviewed By: #bitcoin_abc, Fabien
Subscribers: Fabien
Differential Revision: https://reviews.bitcoinabc.org/D16359