Store PatchSets in secondary index

This serves two purposes, one for today, and one for the medium-term
future. In the short term, eagerly populating patch sets on search
results can help speed up submit rule evaluation, since any submit
rule depending on the list of paths requires looking up the patch set
SHA-1 in the PatchListCache. Looking ahead, we plan to serve related
changes results from the secondary index, which requires starting a
RevWalk from multiple changes' patch set SHA-1s.

Change-Id: I2fe841ae272e46db45231cda4d7a0299d1ca5a3a
4 files changed