Add support for maildir indexes.

After saving updated message flags, Maildir will update a
MessageIndex. Several implementations are provided, though only
HookIndex is of much use at this point. HookIndex is configured with
three new options in a Repository section in the config:

```
index_backend = {hook,dummy,memory}
index_add = {cmd}
index_remove = {cmd}
```

`index_backend` determines which class is used for the index; the
default is `DummyIndex`, which provides no-op implementations of the
basic methods. `index_add` and `index_remove` are used by the
`HookIndex` and determine what commands it executes when saving a new
message in a Maildir. `index_add` and `index_remove` are both invoked as
follows:

```
{index_command} {full_path_to_new_message_file}
```