This is similar to the split between index and server.index: these
pieces of the index code do not depend on Gerrit internals and may be
used to implement a project index in non-Gerrit servers. In other words,
this is the logical continuation of the work started in I07beec95.
Change-Id: Ic56eb46a5386cdd72f62117ad36b24ca85659809