Don't use ByteWindows when checking pack file headers/footers
Its highly unlikely we need the 8 KiB surrounding the pack file header
or footer immediately after opening the pack file. Reading those as
full blocks and registering them in the WindowCache is probably just
churning garbage through the cache. Instead, read the header with a
single 12 byte read, and the footer with a single 20 byte read, and
bypass the cache altogether.
This nicely removes a deadlock condition we had previously where the
WindowCache was recursively calling itself during the pack file open,
and got stuck on its own locks.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>