pack: init the cache on packfile alloc

When running multithreaded, it is not enough to check for the offmap
allocation. Move the call to cache_init() to packfile allocation so we
can be sure it is always allocated free of races.

This fixes #2355.
Merge pull request #2357 from libgit2/cmn/pack-cache-init

pack: init the cache on packfile alloc