Add a "stats conns" command to show the states of open connections.

This is mostly for debugging purposes, e.g., to detect hung clients,
but the implementation also simplifies management of connection
descriptors by eliminating use of the freelist and allocating a
static pointer array indexed by descriptor. (The actual conn
structures are still allocated on demand, so the impact on memory
consumption is negligible.)

To be able to show multiple concurrent UDP requests, the UDP socket
is dup()ed so that each worker thread has its own UDP file descriptor
to process rather than all sharing a single one. This means the
server can handle slightly fewer TCP clients before running up
against its file descriptor limit, but any installation that's
running that close to the limit really ought to either raise the
limit or use a proxy of some kind anyway, so this should have no
real-world downside.
Add documentation of "stats conns" to protocol.txt
Factor out string representation of conn
Don't lose item_size_max units in command line
barebones LRU crawler proof of concept

so many things undone... TODO is inline in items.c.

this seems to work, and the locking should be correct. it is a background
thread so shouldn't cause significant latency. However it does quickly roll
through the entire LRU (and as of this PoC it just constantly runs), so there
will be cpu impact.
basic tests + lrucrawler -> lru_crawler
return next item from crawler_crawl_q

... instead of return flags and such.
adjust some comments.
don't waste an item flag for crawler

detect via an impossible item: nbytes/nkey are 0. There're other clever ways
we could do this as well (nbytes == maxint, etc).
crawler reclaims stat
control system

nothing internally magically fires it off yet, but now there is an external
command:

lru_crawler crawl [classid]
... will signal the thread to wake up and immediately reap through a
particular class.

need some thought/feedback for internal kickoffs (plugins?)
notes
optionally take a list of slabs to run against.

lru_crawler crawl 1,2,3,10,20 will kick crawlers off for all of those slabs in
parallel.
command to change the sleep between runs

lru_crawler sleep 1000 - sleeps for one millisecond between runs.
starttime options for lru crawler

-o lru_crawler,lru_crawler_sleep=500 - enable it and set sleep for 500
microseconds.
refactor crawler thread a bit

reduce indentation, shorten the function a bit. also now sleeps after every
inspected item vs after each run through all active slabs.
LRU Crawler command documentation.

lacks autorunning stuff still.