Extract findLastCommit method from BlameServlet into BlameCache

On a slow DFS backend like the one used by googlesource.com, walking
commits may be much slower than on a local disk with a hot buffer
cache, and this step may require walking hundreds of thousands of
commits.

Optimizing this operation in the most common case is not likely to be
useful, so the default implementation does no caching. However,
extracting this into the BlameCache interface allows for more complex
implementations in alternate backends.

Change-Id: Id138dbae9fb8ecb82a6b6e486d5d162869cc04ed
3 files changed