Use a hash slice on the object cache instead of is_loaded()

This speeds up releasing by about 60%, and is also about 15% faster
than an alternative Pool implementation where it used a listref to
store references to objects.

The array version (surprisingly) used more memory.  Hash key strings are
shared within the process.  Since the Pool keys are the same as those used
by the object cache (class names and IDs), they don't take up any additional
memory.

Change-Id: Icd8da23d80d100a49cdcec4e8c5ca16ed86cc141