Support for raw bytes send/receive (fix #27)

Changes:

 - Rename Read/Write to parameterized Reader/Writer
 - Default readers/writers for `Array[Byte]` and `ByteString`
 - `trait Format[A] extends StringReader[A] with StringWriter[A]`
   - Custom format can be defined in the same way as before
 - Change Stringified to wrap ByteString instead of String
 - Refactor command serialization logic to deal with ByteString earlier
 - Introduce `RedisCommand.Args` for type-safe argument aggregation
 - Rewrite `bitop` and `hmget` according to our multi-arg convention
 - Every command handles only one Redis command
Merge pull request #41 from guersam/fix/27

Refactor (de)serialization to support raw Bytes (fix #27)
move connection related commands to a new trait and object (for underlying messages)
add ping, echo, move connection commands to new trait/obj