Fix DEFUN-CACHED thread/interrupt-safety issues. It was
possible for FOO-CACHE-ENTER to modify a region in the cache
vector while FOO-CACHE-LOOKUP had only partially read it.
* Instead of storing all the data in one vector, the main
cache vector will only contain references to bucket vectors,
which contain the real data. FOO-CACHE-ENTER will always
allocate a new bucket, old buckets are never modified. Thus
FOO-CACHE-LOOKUP consistently sees either a pre- or post-