New data reader modules need to provide just reader :: Reader, which is the format name, a detector predicate, and a parser.
Currently this is just the journal and timelog file formats. This is more scalable, but when things go wrong there is no longer just a single parse error. For now we'll just show the first error, the one from the journal file parser.
This facilitates adding readers for new data formats. Timelog parsing is temporarily broken.