This PR creates a client-daemon protocol for
the BIP78 sender, using the base protocol
`HTTPPassThrough` which provides tor and non-tor
agents with POST and GET request functionality.
As for Joinmarket coinjoins, the use of an in-process
daemon is the default option, but it can be isolated
by changing the `[DAEMON]` section of the config.
The receiver side of BIP78 will be addressed in a
future PR.
Prior to this commit, running joinmarketd as an isolated
process only supported serving the Joinmarket protocol;
attempting PayJoin would result in silent failure as the
receiver would reject the !pubkey message.
After this commit, the joinmarketd daemon serves both
protocols with the PayJoin protocol being served at port+1
Still primitive in that key and cert must be added in a subdirectory
'ssl'; self-signed is fine, so easy if openssl is available. But this
must be wrapped up for users before it can be a default (it is not
the default for now). Could be hard on e.g. Windows.
New module jmclient.schedule currently only parses schedule files,
and returns an array of tuples as a schedule.
Option added to sendpayment (-S) to pass in a schedule file, instead
of using command line arguments (still valid for single joins).
Added intermediate state to daemon to track whether ioauths have been
already sent, to prevent duplicate sending on timeout.