The ability to load a packfile from memory means that it becomes easy to
use the "embed" package to embed a small packfile.
The refactor to allow loading from memory also makes it easy to add a
MapAndLoad implementation, which means the file only needs to be opened
/ mmap()ed once.