Patch Set 2:

Still not a final implementation.  However, it can now handle the linux-2.6 repository.  I also added an abstract implementation of a caching service.  I've glued it onto a variant of memcache, and with memcache and cached object lists we can clone linux-2.6 in about 3 minutes.

I'm keeping it blocked from submission because I want to clean up documentation, and add high-level docs about how the schema works first.  Oh, and unit tests, and ... :-)