Support non-blocking (Async) APIs

On #647, we switched I/O from Stream based Old I/O to New I/O.
Based on New I/O, finally I can introduce non-blocking APIs to Jedis!

I'm not familiar with Java New I/O, and our clients may have Java 6, so there're some restrictions on implementation.
I'm trying to implement it simply, so I try to avoid multi-thread things as many as possible.
(It may lose some performances.)
1 dispatcher handles 1 connection's request/response with only one thread.

Current APIs doesn't support Sharded, Redis Cluster, Sentinel, scripting, transaction, pipeline.
You can't select DB index, and you should present AUTH password with AsyncJedis constructor.

I wish NIO experts would improve my base codes to gain high performance.

Please review and comment. Thanks!

ps. It's upmerged.
ps2. Failing test is not related to async, it's related to https://github.com/antirez/redis/issues/1561.
We should fix it by create another issue.
@mardambey 
1. I mean to block adding tasks while dispatcher is handling connection exception.
Task queue itself is thread-safe, but we should guarantee dispatcher logic is also thread-safe.
I wonder dispatcher can allow adding tasks while handling connection exception, so it's very appreciated to review whole dispatcher logic is thread-safe.

2. Actually allWriteTasksCounter, allReadTasksCounter, allResponsedTasksCounter is for debug purposes, so it could be removed at now.
(We can present this statistics by jmx, but I wonder it may help someone. ;) )
I'll apply it.