Reworked the PackMap datastructure to store the selected pack by key,
not object.
That way if the object is replaced in the map the new object at that key
is retrieved instead of the old reference.

Signed-off-by: Dalton Pelc <daltonjpelc@gmail.com>