Fix reference leak in process_get_command()

If a command-aborting error (invalid key, out of memory) was encountered
while processing a get command with multiple keys, the references to the
items before the one that caused the error were never being released.
Fix reference leak in binary protocol "get" and "touch" handlers

When the binary protocol was used over TCP, the references to objects
accessed by "get" and "touch" commands were never released. UDP clients
didn't run into the problem because conn_cleanup() is called at the end
of each UDP request.
Combine binary "get" and "touch" handlers

There was a ton of code duplication in these two request handlers; they
do basically the same thing so are cleaner as one function with a few
extra conditionals.
Stop returning ASCII error messages to binary clients

In a couple out-of-memory conditions, out_string() was being called
regardless of the client's protocol.  Wrap all the out-of-memory
out_string() calls with a helper function that returns a binary
response if appropriate. (In most cases, this is in ASCII protocol
handling code and thus is a no-op change, but using the wrapper in some
places and not others is an invitation to future bugs of this type.)
Allow caller-specific error text in binary protocol

Right now this is just used for out-of-memory errors, but may be used
for any error response where there's value in replying with something
other than a generic description of the error code.
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