Sender: make independent of IO monad.
Separate IMAP state from client code
Make ImapState.state immutable
Move relevant function to ImapState
Eliminate `handler' for handling FETCH responses
Get rid of oasis and general rename
Rewrite ImapParser to work with ImapReader
Major rewrite

- Switched to normal variants from polymorphic variants

- `On-line' parser (we can parse at the same time we read from the
  network) => Delete ImapReader

- Merge ImapMime inside ImapResponse

- Not working right now, since the interface between the new parser and
  the existing client code is broken (lots of `assert false' everywhere)

- Get rid of `Sexplib'

- Delete `ImapUint' (use plain Uint32, Uint64)
Merge `ImapResponse' in `ImapTypes', `ImapParser'
Parse `flag-fetch'
More major rewrite

We are moving all connection-related stuff to the frontend (Unix, Lwt,
Async, etc.).  Right now there is only a hyper-minimal unix frontend
which can connect succesfully via SSL (but not yet authenticate).

- Deleted IO
- ImapClient => Imap
Add pretty-printer ImapPrint
Basic commands work again

- Merge ImapState into Imap
Add more commands
Move *state types into ImapTypes

- Also remove some of the stuff that will be handled by extensions
Add support for extensions
ImapPrint typo
Move imap buffer to front-ends
Make Imap.state immutable

Also merge `state' and `session' types.
Eliminate Uid, Seq, Modseq, Gthrid, Gmsgid

Replace them by the corresponding Uint32, Uint64.