Refuse to use a connection with cache_cas disabled.

Vincent Pelletier: reformulated code and exception message a bit.
Use finer-grained exceptions.

Vincent Pelletier: make MemcacheLockReleaseError inherit from
thread.error for consistency with python's lock objects, and backward
compatibility.
Detect failure to allocate an uid.
Add deadlock tests.
Add memcache-style exptime support.

Vincent Pelletier: Rename "timeout" as "exptime" and mention
memcache protocol documentation.
Drop default parameter values from docstring.

These duplicate code, and pydoc find them from code anyway.
Skip swarm tests if multiprocessing.Pool() fails.

This fails on travis-ci for some reason.
Add travis-ci file.
ThreadRLock.locked: Add support for "by_self".
ThreadRLock: inherit from RLock instead of proxying it.
Make pep8 happy.
Add test for lock persistence.
Use add instead of gets+cas to initialise uid generator.
Use add/delete pattern instead of gets/cas.

Simpler & shorter code, fewer roundtrips, does not produce garbage on
python-memcached level (cas_ids).
Suggested by James Haggerty <jamesh@freelancer.com> .

Also, stop pretending to support lock persistent on ThreadRLock, as
threading.RLock internal state cannot be restored.
Also, add "resync" method, to refresh internal state from memcached to
cure desynchronisations.
Allow disabling release safety check.
Implement blocking acquisition quadratic backoff.

Suggested by James Haggerty <jamesh@freelancer.com> .
Add timeout support for lock acquisition.

Suggested by James Haggerty <jamesh@freelancer.com> .
Distinguish between unresponsive memcached and failed command.

python-memcached is making this hard for "add".
Implement stand-in optional behaviour.

Suggested by James Haggerty <jamesh@freelancer.com> .
Rework docstrings.