Spent the morning improving behavior when `commit.gpgsign` is set.
Now git-annex will let gpg sign commits that are made when eg, manually
running `git annex sync`, but not commits implicitly made to the git-annex
branch. And any commits made by the assistant are not gpg signed. This was
slightly tricky, since lots of different places in git-annex ran `git
commit`, `git merge` and similar.

Then got back to a test I left running over vacation, that added millions
of files to a git annex repo. This was able to reproduce a problem where
`git annex add` blew the stack and crashed at the end. There turned out to
be two different memory issues, one was in git-annex and the other is in
Haskell's core `getDirectoryContents`. Was able to entirely fix it,
eventually.
