Provide WatchError in the top-level module.
Merge pull request #150 from jdavisp3/watch-error-2011-06-27

Provide WatchError in the top-level module.
no reason that these should call list_or_args
fix #149 - hold connection for duration of WATCH
test that pipeline() frees a watching client
First quick pass as a subclass of Redis which is bound to one connection
Merge remote-tracking branch 'wolever/threadsafe_transactions' into watch_fixes

Conflicts:
	redis/client.py
Fix for #153, can only reliably check the last byte of the response
WATCH and UNWATCH have been broken since 2.4 because of connection pooling. This fix moves WATCH and UNWATCH to the Pipeline class, where they belong and tests to prove they work.
Allow a custom callable to be passed to commands whose responses are parsed with zset_score_pairs indicating how to cast the score value. Defaults to a float. Fix for #155
remove PUBLISH from the PubSub object. Can't PUBLISH from any connection that's currently [P]SUBSCRIBEd, so it doesn't make sense to keep it here.
Merge branch 'master' into watch

Conflicts:
	CHANGES
ensure UNWATCH gets called properly
Simplifying the Pipeline transaction logic.
Whoops, shouldn't be changing 'self.transaction'

Otherwise, if `.multi()` is called then `.reset()` is called, `.transaction` will remain `True` when it should be `False`
Merge remote-tracking branch 'andymccurdy/watch' into watch_fixes

Conflicts:
	redis/client.py
	tests/server_commands.py
Don't mask ConnectionError in Pipeline.execute()
Merge remote-tracking branch 'wolever/watch' into watch_fixes
reset() and unwatch should react to responses

self.watching should not be set to True until a successful response
from a WATCH is received. We can simplify management of this variable
by completing the response cycle with an overridden parse_response().
remove obsolete server_commands test_(un)watch