Make PackFile thread-safe
We really should try to avoid allocating the reverse index within
the pack object itself, and instead make the applications that do
use this data manage it themselves. This way the index could be
released in memory when its no longer used, and the locking could
be bypassed entirely.
Since most of PackFile is dependent upon the WindowedFile we can
mostly ignore synchronization in this class.
Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Signed-off-by: Robin Rosenberg <robin.rosenberg@dewire.com>