Remove 10ms delay when one C* node is down

the checkNextConnection used setTimeout() to call checkNextConnection
on a 10ms delay. This is not needed and its better replaced with
setImmediate().

setImmediate was introduced in node 0.10 which is already the
minimal requirements in package.js so this should not break
backward compatibility.
Calculate connection latency and skip too slow connections

Each connections keeps a history of each execute (and executePrepared)
request durations in milliseconds, which allows _getAConnection()
to skip connection if its average latency is too high (configured
with latencyLimit option).

If all connections in the pool have too high latency then a connection
is returned regardless its average latency.

There's a separated Client.getConnectionLatencies() function
which returns a map from server host:port to its average latency,
which can be used to track latencies in the code.

In addition the default consistency level was changed from
ONE to QUORUM in the test suite, because it caused test instability
when using three node cluster against the test suite.
Log host:port on connection timeout
Implement reconnect on background
Merge pull request #1 from Applifier/master

Pulling in changes from Applifier fork