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.
* 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!