- all code has been relocated from `wallet.py` to individual modules under
`wallet`, with each wallet type having its own module
- the fully rewritten initialization code can be found in `__init__.py` and
`base.py`
The monolithic tx.py module has been split into multiple modules, and a
clean separation of protocol-dependent and protocol-independent code has
been carried out.
- Protocol-independent base classes are located under `tx`.
- Protocol-dependent subclasses are under `base_proto/{name}/tx`.
- The code in `tx/__init__.py` loads the required module and returns an
initialized instance of the requested class.
- each command group now has its own module under the `tool` directory
- only modules required by a given command are loaded
- code used only by the command-line tool has been relocated to `main_tool.py`
Rationale of this commit: to relocate some ugly test-related code from the MMGen
package tree to the test tree, as well as to enable deterministic testing
(implemented in the next commit).
The overlay tree is a symlinked mirror of the MMGen package dir with a few
monkey-patched modules.
The monkey-patching is conditional, so the modules are certain to get tested in
their unpatched state as well.