fix CSHARP-87 and CSHARP-88

Modified round robin policies (regular and DC-aware) to maintain equal
distribution even when a live node goes down.  This means increased
traffic on a mutable static variable local to the driver instance, but in
practice will only trigger if the first pick for the queried node does not
work (node is down, there is a partition or some such).  This is not a
main path scenario.

Modified node behaviour in DC-aware round robin policy, such that
uninitialized nodes report they don't belong to any DC instead of the
local DC.  That way newly allocated nodes will not mistakenly report that
they are "local" until they have finished initializing.

Also made a few test fixes to make round-robin-related tests more stable:

 - in dc aware test, on failover to remote DC, do not assert that a
   particular unique host has picked up the work, because the algorithm to
   select the node there is quasi-random.  Instead assert that the DC has
   picked up work.

 - in downgrading consistency policy, allow for some tolerance when
   checking equal work distribution when a node is torn down.  Due to
   counter modulo shifting after metadata update, one of the nodes may
   end up picking up work earlier than it would have had the ring been
   stable.
make creation of Cluster and Session in CqlConnection be virtual so that they could be customized in child classes
Merge remote-tracking branch 'remotes/origin/2.0' into 1.0
Merge remote-tracking branch 'remotes/origin/dse_3.1' into 1.0
Merge pull request #22 from englishtown/feature/virtual_create_cluster_session

Make creation of Cluster and Session in CqlConnection be virtual
Merge pull request #19 from dshelepov/master

fix CSHARP-87 and CSHARP-88
manual merge of https://github.com/datastax/csharp-driver/pull/18
fix compilation problems
USING TIMESTAMP in microseconds
Merge branch 'upstream' of https://github.com/vytautassurvila/csharp-driver into 1.0
Added test on CqlCommand SetTimestamp
Create a new instance of the policies when accessed. Fix CSHARP-103.
Merge branch '1.0' into 2.0
Using instance on RetryPolicyTest