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.
Fixed build + cleaned up the comment issues (caused a lot of errors in Resharper)
Ensuring that the Socket.Connect() respects the specified timeout, even if the given host drops the connection
make creation of Cluster and Session in CqlConnection be virtual so that they could be customized in child classes
set Cassandra project InternalsVisibleTo Cassandra.MSTest project to fix solution build error
add named parameters support to CqlCommand class
fix bug in CqlReader.GetValues() which blocks CqlDataAdapter.Fill to work.
values should not be re-new here, should set values directly.
Make CqlCommand Call CqlConnection.CreatePreparedStatement() method to enable customization of prepared statement creation in child classes of CqlConnection
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
Organize the existing code into something a little more coherent

- At this point, things don't compile/work, but I'll fix that shortly

Conflicts:
	build/csharp-driver.build
	src/Cassandra/RowPopulators/TypeInterpreters/TypeInterpreter+Timestamp.cs
Unify solutions and dump unused csproj files

- Since the current Cassandra.sln doesn't compile and doesn't look to be used (the Cassandra.MyTest one does however), create a new Cassandra.sln file modeled after the one that's actually used
- Dump all the other solutions, as well as the *.MSTest.csproj files which aren't used (at some point we must have transitioned to the MyTest csproj files for tests)
- Fix the links to Snappy and MurmurHash in Cassandra.csproj so everything compiles again

Conflicts:
	src/Cassandra.MyTest.sln
Add the BigDecimalSamples project to the solution and get it compiling

- Add the two IKVM libraries it needs via NuGet
- I'm pretty sure InvalidExecption should be InvalidQueryException in the main Program (but I'm not 100% sure)

Conflicts:
	src/packages/repositories.config
Dump the CCMBridgeTest project

- It doesn't actually do anything, so dump it
Move all integration tests (which is currently all tests) into a new, single library (Cassandra.IntegrationTests)

- This includes CCMBridge and MyTestLib
- Namespaces are all currently wrong, but I'll fix that in a bit
- Also rename the test runner from MyTestRun to Cassandra.IntegrationTests.Runner
- Things still compile after this move, but the tests are probably broken due to their usage of reflection

Conflicts:
	src/Cassandra.Data.Linq.MSTest/Cassandra.Data.Linq.MyTest.csproj
	src/packages/repositories.config
Rename all the samples projects to Cassandra.Samples.*

- Namespaces are all wrong, but I'll fix those shortly
Fix the namespaces in the newly combined/renamed test projects

- There's definitely still some reflection broken here, will fix that shortly
Combine partial classes in IntegrationTests, move classes into their own files in IntegrationTests

- Not sure why we're using partial classes here, but it's definitely dumb, so combine them
- Put all classes/structs/interfaces/etc. into their own files with the appropriate file name
- We were linking to some files in the Cassandra assembly to have them compiled into the IntegrationTests assembly (trying to get around the internal restriction on those classes) which is really bad
- Just expose the internals of Cassandra to the IntegrationTests assembly instead, which is a pretty standard thing for Tests assemblies, although I am a bit confused as to why our integration tests would need access to internals :-/

Conflicts:
	src/Cassandra.IntegrationTests/Core/Basics.cs
	src/Cassandra.IntegrationTests/Core/Collections.cs
	src/Cassandra.IntegrationTests/Core/PreparedStatements.cs
	src/Cassandra.IntegrationTests/Core/PreparedStatementsCCM.cs
	src/Cassandra.IntegrationTests/Core/PreparedStatementsTests.cs
	src/Cassandra/Properties/AssemblyInfo.cs