A few final bits and pieces of direct mode. Fixed a few more bugs in the
assistant. Made all git-annex commands that don't work at
all, or only partially work in direct mode, refuse to run at all. Also,
some optimisations.

I'll surely need to revisit direct mode later and make more commands
support it; `fsck` and `add` especially.
But the only thing I'd like to deal with before I make a release with direct
mode is the problem of files being able to be modified while they're
being transferred, which can result in data loss.
