keys go into and out of the table. the old code allocated the keys from
the hash table's arena, so they would grow without bounds. Now the keys
are allocated from the heap, and get freed when they are expunged from the
table.
git-svn-id: svn://10.0.0.236/trunk@113738 18797224-902f-48f8-a5cc-f745e15eee43