add SSL support
fix line too long (coding style test)
fixing coding style
E127 continuation line over-indented for visual indent
string literals no longer get encoded before being send to Redis

previously all pieces of a command, including the command name and literal
options to it (such as "WITHSCORES" on ZSET commands) would get encoded.
this works fine on utf-8, but other encodings like utf-16 break.

a new Token class has been introduced that command names and literal options
get wrapped. the encoder falls back to the latin-1 encoding for these
literals as they are all ascii.

fixes #430
changelog
Merge branch 'pr/446'

Conflicts:
	redis/client.py
	redis/connection.py
add SSLConnection to package
be better about testing on servers where there may be other connected clients
cleaner 2.6 fallback code for querystring parsing on python 2.6
more love for testing on servers w/ other connected clients
added the ablity to pass ssl options to client classes. #446
construct SSL connections from URLs. #446
allow cert_reqs to be a string and convert it to the appropriate SSL constant.
added socket_connect_timeout and socket_keepalive options. fixed #353
consistent naming, #446
it's ok if max_connections is a long.
only pass explicitly defined or socket_* options to sentinel connections.

fixed #483
Don't retry commands that fail due to a socket.timeout by default.

Users now have the ability about how socket.timeout errors are handled.
Previously socket.timeout errors were handled just like any other socket error
in that the command would be retried once. This createed a potential race
condition when the client sends a command to a busy Redis server that can't
reply faster than the client's `socket_timeout` option. In this case, the server
will still eventually process the command.

There's now a `retry_on_timeout` option that's set to False by default.
If `retry_on_timeout` is False, any socket.timeout error will raise a
TimeoutError exception. If `retry_on_timeout` is set to True, the client
will retry executing the command once just like other socket.error exceptions.

TODO: Write better tests for this code.
TODO: Much of this logic could/should be moved to the ConnectionPool or
      Connection objects.

Fixes #261
changelog
using repr() on a long value includes the trailing "L". use str() instead.

fixes #484