3fc74fbe2a Refactor and cleanup of blockchaininterface and related (Kristaps Kaupe)
Pull request description:
Summary of changes:
* Add typehints to `jmclient/jmclient/blockchaininterface.py` and `jmclient/jmclient/jsonrpc.py`;
* Move all methods called by external code to `BlockchainInterface` base class or add abstract methods there;
* <del>Remove broken `ElectrumWalletInterface` (we can re-introduce it later from history if somebody wants to fix it);</del><ins> (done in #1477)</ins>
* More dummy abstract method overrides for `DummyBlockchainInterface` (for tests);
* Alphabetical ordering of imports and other minor stuff;
* Behaviour change - previously fee estimation would fail if it could not get mempoolminfee, now will go with default 10 sat/vB.
#1460 was part of this, but did separate PR for that one, as it is simpler to review small refactoring changes.
This should make it more easy to: 1) write new code that uses blockchaininterface, 2) write new alternative implementations of `BlockchainInterface`.
Top commit has no ACKs.
Tree-SHA512: 7699de0419c1006ff3c6ac5da7d26055b8e3508c424b5bdd3117fea575d30ab21e8617b2d50ae7c8b2e76997d6f4b14781bb56fcdad4efc081d533a713666a31