Reverse sort tags by time in the repository index page

Define "time" as the tag or commit time for each object, and negative
infinity for non-tags and non-commits. This is potentially expensive
to compute, especially on large repositories, but can be cached
forever. Default the cache size to 10240 objects but make it
configurable.

Change-Id: Icf1b6c23c23d165ebe5a971529c51c8057bd3ebe
7 files changed