Made a lot of progress today. Implemented the database mapping a key to its
associated files.  As expected this database, when updated by the
smudge/clean filters, is not always consistent with the current git work tree.
In particular, commands like `git mv` don't update the database with the
new filename. So queries of the database will need to do some additional
work first to get it updated with any staged changes. But the database is
good enough for a proof of concept, I hope.

Then I got git-annex commands treating smudged files as annexed files.
So this works:

	joey@darkstar:~/tmp/new>git annex init
	init  ok
	(recording state in git...)
	joey@darkstar:~/tmp/new>cp ~/some.mp3 .
	joey@darkstar:~/tmp/new>git add some.mp3
	joey@darkstar:~/tmp/new>git diff --cached
	diff --git a/some.mp3 b/some.mp3
	new file mode 100644
	index 0000000..2df8868
	--- /dev/null
	+++ b/some.mp3
	@@ -0,0 +1 @@
	+/annex/objects/SHA256E-s191213--e4b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855.mp3
	joey@darkstar:~/tmp/new>git annex whereis some.mp3
	whereis some.mp3 (1 copy) 
	  	7de17427-329a-46ec-afd0-0a088f0d0b1b -- joey@darkstar:~/tmp/new [here]
	ok

get/drop don't yet update the smudged files, and that's the next step.
