* Refactored so that all server code is in a single file
* Added missing CLI option to send reload/quit commands to the server
* Implemented client mode
* In addition to the server mode, it is now possible to run the
program in standalone mode. In that mode, the updates selector and
force flag will be read from the command line, the updates will be
executed immediately, and the program will exit.
* Client mode ready to be implemented
* The UNIX socket will be listened on for control messages
* A message containing a single 'Q' will cause it to exit
* A message containing a single 'R' will cause a configuration reload.
If the new configuration is incorrect, the old configuration will be
kept. A new socket will be opened if the path has changed (failure
when doing so will restore the previous configuration as well).
* A message starting with 'U' requests an update. The next character
may be '!' to force updates or anything else to update only as
needed. The rest of the string is the selector: either a DN or '*'.
* The selector is ignored in this commit; all certificates are
re-examined.
* An example configuration file has been added.
* The data structure that corresponds to the configuration has been
defined, and functions to load it have been added.
* Logging using logrus and command line arguments that configure
logging and set the configuration file's path have been added.
* Opening the UNIX socket has been implemented.