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
Merge branch 'master' into consistent-hashing