- reimplementation of util_memoize cache for NaviServer. The original
implementation of the util-memoize functions was based on "manual expirations"
(every cached entry was a pair of value + timestamp). This is not needed
on naviserver, since NaviServer allows us to specify for every entry
directly an expire time, which is implemented internally. The new
has the advantage that (a) it is faster, (b) more secure (no race conditions),
(c) smaller memory footprint (not only storing the timestamp is not needed;
furthermore invalidation of timed-out entries happend in the old version only,
when the entry was fetched; in practice (openacs.org) many dead entries
where kept, the size wen down by 90%), (d) due to small number of entries
the search in the keys is much faster.