Removed use of System.identityHashCode from critical loops.
According to the profiler we were spending about 12% of our time in
System.identityHashCode. Which is simply unacceptable within our
really tight search loop in WindowCache.
Since WindowProviders are few and far between (only 2 per pack file,
and not very many pack files per Repository) we can easily afford
the 4 bytes of memory required to compute the identityHashCode once
and keep it in a package access instance member.
This drops our running time from 2180 ms to 1960 ms, getting us very
close to C git.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>