Change Old IO (Stream) to NIO (Buffer & Channel)

Hello!

As programming paradigm has been changing, we should eventually support non-blocking.
I've worked first step of supporting non-blocking - change Stream based IO to NIO.
Although it's still "blocking" and there're no special performance gain, we can change it incrementally.
I'm just beginner of NIO, so we can tune it for more faster.

* replace IO Stream things to NIO utils I have made
  * RedisInputStream -> SocketChannelReader
  * RedisOutputStream -> SocketChannelWriter
* modify relevent classes : Connection, Protocol
* non blocking is not yet present (currently blocking)
* modify Protocol unit test for testing with NIO utils

@xetorthio @marcosnils Please review and comment!
Thanks!