IDEAS

Add a dynamic region to a request, for allocating string-related data in the
request (for example, the pathname, path_info, path_translated, and
script_name).

Change new_request and free_request to malloc and free the request
structure, rather than sticking it on a free list.  Better assurance of no
dangling pointers.

  For unique pointers, add a level of indirection on the request structure
  so that the list itself is heap-allocated, but the requests within it are
  unique.  Again, we can be sure of no dangling pointers.  Need to define a
  new struct type that has the actual request pointer, and change the prev
  and next field types to have that type.



---

util.cyc:
  A number of functions do pointer arithmetic, for which we do not support
  bounds check elimination.  Even worse, it's backwards arithmetic!

  particularly bad:
    get_commonlog_time
    rfc822_time_buf
    unescape_uri
    simple_itoa
  bad:
    clean_pathname

