Implement CAS.

This is a critical part of memcached usage.

- The API follows the pattern set by pylibmc, where CAS values
are returned to the caller, and not python-memcache, which
magically caches values internally.  It's simpler and much
more obvious, where in python-memcache you have to enable it
explicitly (since it leaks if you're not aware of it) and
periodically flush the cache.

- Performing a CAS with a cas value of None is equivalent to
an add.  This is logically doing a compare-and-set saying
"compare against the lack of a value".  The common pattern is
wanting to set a value as long as nobody else has written
something since you read its value, so if you read that the
item didn't exist, CAS becomes ADD.

- Multi-CAS is supported through set_multi, as well as performing
some updates with CAS and some not in a single batch:

mc.set_multi({
    ('key', cas): value1,
    ('key2', cas2): value2,
    'key3': value,
}]

- The cas() API is redundant with set_multi, but was added for
parity with other Python memcache clients.  I'm not sure if this
is actually worth having.

- delete() supports CAS.
Merge pull request #24 from blue-goji/cas

Implement CAS.
bumpped version
Added support for re-connecting after initiated disconnect. Makes library compatible with Django's memcached cache wich disconnects the client after each HTTP request.
Spell recursive correctly
Merge pull request #26 from johnboiles/master

Spelling, yo!
Merge pull request #25 from yoav-steinberg/master

Added support for re-connecting after disconnect
bumpped version
Implement transparent error handling.

Connections to the server are made as required.  If an error occurs,
behave as though we're talking to a server with no memory, so all
gets return no data.  Reconnect to the server automatically, optionally
delaying to avoid spamming servers with TCP connection requests while
they're down.

This avoids every user of the library needing to roll their own
error handling and reconnection logic.

Internally, this is implemented by making writes no-ops, and responses
return an error code 'server_disconnected'.  This allows the various
callers to _get_response to have a minimum of changes.

This also fixes an assertion failure triggering if the server
disconnects during a request.  There should probably be a test
for this, but it's tricky to write and the reconnection tests
took too long to implement already...

Other than allowing callers to enable and disable retry delays, this
doesn't affect the public API.
Merge pull request #27 from blue-goji/transparent-connection-error-handling

Implement transparent error handling.
Bumpped version