Add function to parse log level.
Make util::error model the printable concept.
Allow path to be constructed from a C++ string.
Use value semantics for program configuration.