This adds in a "notmuch reindex" command so that deleting the terms from deleted files can be accomplished. There are still several UI issues to deal with (i.e. we return an arbitrary file, not necessarily the one matched). The reindex command is a simplified version of one the that dkg originally wrote for his series on indexing encrypted messages. I've ripped out all the encryption related stuff here. I've also postulated (but not yet written) a more generic way of handling index options, roughly modeled on our command-line-options code. I hope that this will allow fewer functions, and a more static API at the library level; at this point it's just a sketch of an idea.