updated xenial and stretch dockerfiles since they bundle old versions of libsodium
refacatoring to make BlockchainInterface and BitcoinCoreNoHistoryInterface python2 compatible
add the -acceptnonstdtxn flag when invoking bitcoind for versions >= 0.19.0
refactor the use of nonlocal to make it compatible with python2
document the get_bitcoind_version method
Previous to this commit, the jmbitcoin package was accessed via
a file in jmclient `btc.py` which was originally added as an
interface to allow the client to use a non-jmbitcoin package to
provide the implementation; while this idea is useful, the way
it was implemented was not, moreover it is not currently used
and contained duplicated code that was unmanaged. Also, the
original usage of this was only by the electrum plugin, which
has currently been abandoned. This simplifies the code and
avoids spurious error messages. Note that most of the changes
are a result of pulling the logging function directly from the
jmbase package instead of indirectly via this interface (which
was unnecessary and not connected with jmbitcoin).
Uses protocol.ReconnectingClientFactory as superclass,
which uses exponential backoff in retrying.
Also change on_welcome_trigger callback to reset the
status of message channels which have reconnected,
so that they become operable once reconnected.
Also, some minor changes: filter_orders_callback taken outside
Taker since it involves user input necessarily. Related, answeryes
removed from module, can be done outside.
Donation code explicitly removed from all code branches for now.
A couple of very minor changes thrown up from testing.
Coverage of Taker now 100%, will work on the rest of jmclient.
Slight modification to install process, using pip install to avoid
polluting directories with build data.
Added general regression test support files to test/ (distinct from
planned package-level unit tests), this 2 levels of test should
function much better.