Refactor (de)serialization to support raw Bytes (fix #27)

New design draft to solve this.

General:

 - [x] Rename Read/Write to parameterized Reader/Writer and make them private[redis]
 - [x] ByteStringReader/Writer for Array[Byte] and ByteString
 - ~~Delegation to another reader/writer (optional)~~
 - ~~StringReader/Writer in conjunction with ByteStringReader/Writer~~
 - [x] trait Format[A] extends StringReader[A] with StringWriter[A]

Command-side:

 - [ ] Change Stringified to Serialized and wrap ByteString instead of String
    - It's a bit sad to lose extends AnyVal.. extending ByteString might work though
    - Type alias is not enough because we need a companion object for implicit conversion without import tax.
 - [ ] Refactor command serialization logic to deal with ByteString earlier