Introduce roles, to document interfaces.
First cut for reading Maildirs

Any state with an id greater than the last existing file will never be
cleared. This is being committed so it be be refactored.
Refactored to stream all state.

But the redo causes some state to be skipped.
Remove mail-search.ini, unbuffer output for progress dots.
Untested initial cut at an SSH client.
Gitignore updates.
Reworked, but misses last file now.
Stop skipping last file.
Add a mail-search.ini as an example of the format, and of the class
configuration.