Instead of reading/writing to a single QMDL file, we now can manage
a directory of several files, and have the ability to start/stop writing
to them on the fly.
This commit also adds graceful exiting to the server, so we can perform
cleanup steps when the server's exiting.
This commit does a couple things:
1. breaks out the pcap streaming logic into its own module
2. bundles wavehunter/static files into the binary for easy distribution
3. serves those static files
4. serves dynamic json representing system and diag stats
I also threw together the world's ugliest website to display all this.
1. Main binary now parses a config toml and uses its paths for the
output pcap and qmdl files
2. Previously we were relying on DiagDeviceError for several things
that aren't a diag device. This modularizes that error in a way
that both improves the error descriptions, and also allows for
better separation of concerns.