Move session timeout from wallet to config
Prevent timeouts whenever a device operation is in progress
Move timeout job from each plugin to device manager
Tell the user and ask if they want to try again. If they
say no, raise a silent exception. Apply this more friendly
behaviour to the install wizard too (see issue #1668).
We're going to want to do a few things differently, such as
device recovery. So move the client code to clientbase.py
and create a per-plugin client.py file for the derived client
class.