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