Significant overhaul of CMaildir handling.

  This is part of #75.

  We now operate on persistent selections of CMaildir pointers.
 When pointers are used we keep things the same, so we can add
 caching to CMaildir::unread_messages, etc.