GC: Remove redundant pool searches

This is a reboot of PR 646, but with a slightly different approach.
This PR reduces the worst case times of GC extend and realloc specifically.

It replaces the size and info cache with a single pool cache.