Here's the latest revision of my apr_table_t optimizations.
It's the same as the last one, except that the hash table in
apr_table_overlap() now uses a red-black tree rather than
a linear list to hold multiple entries per hash bucket, so
that the worst-case run time of apr_table_overlap() is
O(n*log(n)) instead of O(n^2).
--Brian