* parsing of scripts and addresses of all segwit types.
* ability to verify arbitrary tx inputs for all segwit types.
* simplify mktx syntax (only allow [],[] args)
* add p2wpkh and p2wsh spending test and fixes to sign calls in wallet
* simplify wallet signing calls in cryptoengine
* add p2wpkh engine, add bip84 wallet
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).
More on bug: when signing txs with SW and non-SW inputs, the
existing signature_form for non-SW inputs didnt pay attention
to whether the tx serialization was SW or non-SW style, so if
a SW-style tx serialization was passed in, it was kept in SW
form after passing through signature_form, resulting in an attempt
to create a signature based on SW style sighashing. The fix here
just ensures that signature_form always enforces the tx format
to be non-SW style, so allowing callers to sign() to get a valid
signature whatever they pass in.
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.