Ensure there are always N+1 threads so udp dispatch works.

If compiled with threads disabled, there would be too few threads to
run udp and bad stuff would happen.
Update CAS on non-replace incr/decr.

This fixes a problem reported as bug 15 where incr and decr do not
change CAS values when they aren't completely replacing the item
(which is the typical case).

http://code.google.com/p/memcached/issues/detail?id=15
Test cachedump on text protocol.
Fix for bug21.

Some strange signness handling around decr caused values that would be
signed 64-bit numbers to get dropped to zero.
Isolate the first server in startup test so it dies sooner (bug 20).

Apparently on some version of Linux I don't have, this causes the test
to hang for a while as gcov attempts to compute and write out the
results from two coverage runs concurrently.

It's best to clean up things as quickly as possible in the general
case, so this should be done regardless.
Added an add behavior test.

Someone in IRC reported this not working one day.  Likely a failure on
the client side, but it's good to ensure it for us in a test case.
Shrink lines in protocol.txt to fit within 80 columns.

Also wrote a new test that will ensure that that never happens again.
Slow down the add test a bit.

Solaris with dtrace enabled was rather consistently failing this.
Expiration times around 1 can get dropped due to memcached clock
resolution.
Use AI_ADDRCONFIG more selectively.

This makes running on Linux when disconnected possible.

Tests still fail when using the -l option to specify a binding address
while offline.  This is probably quite unlikely if it weren't for the
first test.
Build fixes for ubuntu 8.10/64.

gcc seems to have been wise to all of the syscalls being cast to void
to avoid doing real result checking in unlikely errors.
Added support for setting backlog queue on command line
A bit more space for server_stats, and an assertion (bug 27).

I couldn't figure out how to get the stats output big enough to exceed
1024, but I accept it might.

I've given it a bit more space here and added an assertion to detect
when we fail in case we can figure out how to actually have this occur.

Maxing out pretty much everything got me up to 828 bytes:

STAT pid 35893
STAT uptime 152
STAT time 1237000260
STAT version 1.3.2
STAT pointer_size 32
STAT rusage_user 0.002487
STAT rusage_system 0.005412
STAT curr_connections 4
STAT total_connections 5
STAT connection_structures 5
STAT cmd_get 18446744073709551610
STAT cmd_set 18446744073709551610
STAT get_hits 18446744073709551610
STAT get_misses 18446744073709551610
STAT delete_misses 18446744073709551610
STAT delete_hits 18446744073709551610
STAT incr_misses 18446744073709551610
STAT incr_hits 18446744073709551610
STAT decr_misses 18446744073709551610
STAT decr_hits 18446744073709551610
STAT cas_misses 18446744073709551610
STAT cas_hits 18446744073709551610
STAT cas_badval 18446744073709551610
STAT bytes_read 1
STAT bytes_written 18446744073709551610
STAT limit_maxbytes 67108864
STAT threads 5
STAT bytes 18446744073709551610
STAT curr_items 4294967290
STAT total_items 4294967290
STAT evictions 18446744073709551610

... assertion removed for the 1.2 tree.
stats slab's used_chunks should show chunks put to use

It was a bit unclear what it was doing before, but it started out with
a value equal to total_chunks, which was surely wrong.

This change and its accompanying test ensure the value makes a bit
more sense.
fix a handful of socket listen bugs.

AF_UNSPEC is still necessary for UDP sometimes.
We guarantee that at least one address returned from getaddrinfo binds
successfully, and in cases of lacking network or ipv6 addresses some of those
socket() calls might fail. That's normal. We were bailing on them.
This change also removes the need to pass AI_ADDRCONFIG on machines with ipv6
stacks disabled.
dumb hack to self-repair stuck slabs

since 1.2.6, most of the refcount leaks have been quashed.
I still get them in production, extremely rarely.
It's possibly we'll have refcount leaks on and off even in the future.

This hack acknowledges this and exists since we want to guarantee, as much as
possible, that memcached is a stable service. Having to monitor for and
restart the service on account of "rare bugs" isn't acceptable.
print why a key was not found when extra verbose

simple logs for simple people. Patch inspired by a bug hunting session with
evan weaver. It's been useful a few times since.
add a cmd_flush stat

shouldn't add much lock contention for just this.
I want to add this one stat (mayb a few more?) since it's happened more than
once that folks think memcached is broken when a cron or something is calling
'flush_all' once a minute.
two new troubleshooting stats

accepting_conns for completeness, and listen_disabled_num to see how many
times you've hit maxconns and disabled incoming connections. probably a good
stat to monitor and flip out on.
update changelog.
bump version.