The synchronizer now primarily collaborates with a downloader, processor and repository; each with a more focused set of responsibilities.
The downloader streams blocks into a channel, the processor saves blocks from that channel and scans for transactions, the repository
exposes transaction change events.
Previous version did a bad job of recognizing an incorrect config file.
This makes it a bit better. It also removes the need for a config in the
parent directory.
Co-authored-by: Jack Grigg <jack@z.cash>