Testnet is sparse (and value-less), so we have no more than 1 peer per
wallet. To make sure out feedback still works properly this special-
cases other chains.
This moves all the checks and UI interactions into the model, making the
QML much lighter and less error-probe.
At the same time this allows us to add new UX features like when a 'max'
button is pressed it live-updates the amounts in the fiat and bch fields
as the user changes any spending in other outputs.
To allow the UI to modify the payment we split it into details. A detail
is, for instance, an output. This allows the user to add multiple
outputs in one payment, and thus one transaction.
Further payment details can be an input selection (to select exactly
which coins need to be spent) and others may be added later.
For each transaction allow to click on it and show lots of further
details about it.
This also fixes various bugs and adds some basic helper methods in
various places.
The QML is barely functional, getting the right data exposed was the
only goal today.
* split the AccountInfo and Payment classes out into their own files.
* Start a 'color' file to switch between light and dark-theme.
* Start a new main GUI which isn't so hacky and ugly.
* Make this actually a desktop app, with menu and file->quit!