Convert protocol response to Redis format

Protocol as defined at:
http://redis.io/topics/protocol

 - Erlang integers get returned as Redis integers.
 - Erlang binaries get returned as Redis bulk strings.
 - Erlang atoms null and undefined get returned as Redis Null.
 - Other Erlang atoms get returned as upper-cased Redis simple strings.
 - Erlang lists get convereted to Redis Arrays. (nested lists work too)
 - Responses of {error, Type, ErrorText} get returned as a Redis error.
   (Type is an atom that gets up-cased and ErrorText is a binary string)

Tests added for basic protocol generation.

All tests pass.