Long day, but I did finally finish up with gcrypt support. More or less.

Got both creating and enabling existing gcrypt repositories on ssh servers
working in the webapp. (But I ran out of time to make it detect when the
user is manually entering a gcrypt repo that already exists. Should be easy
so maybe tomorrow.)

Fixed several bugs in git-annex's gcrypt support that turned up in testing.
Made git-annex ensure that a gcrypt repository does not have
receive.denyNonFastForwards set, because gcrypt relies on always forcing
the push of the branch it stores its manifest on. Fixed a bug in
`git-annex-shell recvkey` when it was receiving a file from an annex in
direct mode.

Also had to add a new `git annex shell gcryptsetup` command, which is
needed to make setting up a gcrypt repository work when the assistant
has set up a locked-down ssh key that can only run git-annex-shell. Painted
myself into a bit of a corner there.

And tested, tested, tested. So many possibilities and edge cases in this
part of the code..

----

Today's work was sponsored by Hendrik Müller Hofstede.
