Add support for directly removing repos

When a repository is removed via a mechanism such as
gitolite's "rm" adc, just having --purge is insufficient,
as we don't want to go through the entire repository collection
in order to just remove one repo that we know is being deleted.

So, we pass along a -x /path/to/repo/being/deleted

This is incomplete, as we don't currently clean up symlinks
pointing to removed repositories (marked with XXX:).

Another thing in this commit is the support for locking the
manifest. Something that just occurred to me is that we have
a race condition between two commits made at the same
time. If the second commit manages to read the repo between
the first commit's read->write stage, the first commit's manifest
changes will be clobbered by the second.

I should make the lockfile location configurable, but I loathe
creating tons of parameters, so I'm just hardcoding it to the
same directory as the manifest file.