Read timeout so we can survive hanging region servers

In my simulated regionserver failure test (by dropping connections using iptables), hbase successfully relocated the failed regions to new regionservers but asynchbase was stuck with the old regionserver and was unable to recover itself due to its lack of timeout on the socket. (The stock HTable handles it fine without problem)

To fix this I added readtimeout to the netty channel and upon receiving the timeout exception I close the channel so it will be recreated. To avoid closing idle connections, I added a periodic ping to the regionserver. Since the stock hbase ping doesn't generate any response I used the already defined get-protocol-version.

With the above fix, the asynchbase recovers the failure.

@tsuna