armload of DEFINE-HASH-CACHE changes
* To clear a cache, drop the entire vector instead of filling it with
NILs: thread safe, less work, and doesn't add dirty pages to old
generations.
Entering a value after the cache has been dropped allocates a new
one.
Caches are now initialized with 0 instead of NIL -- faster to
allocate.
* Use DEFGLOBAL instead of DEFVAR.
* SAVE-LISP-AND-DIE drops all caches.
* UNSAFE-CLEAR-ROOTS drops caches depending on the depth of the
collection: nursery collection keeps all caches, gen 1 collection
drops the CTYPE-OF cache, gen 2 and deeper collections drop all
caches.