Fixed bug where not always wrapping the connection properly
Wrapping connections in DefaultMongoServer so that we can invalidate the replica set state on exceptions
Re-introduced Session concept.  There are four implementations.  The default is ClusterSession, which for a replica set gives eventually consistent semantics for a replica set.  MonotonicSession implements the read preferences specification and provides monotonic consistency as well as read-your-own-writes even when using WriteConcern.UNACKNOWLEDGED.  Then there are a couple that are useful for queries: SingleServerSession for normal queries, and SingleConnectionSession for queries that set the exhaust flag.  All Operate subclass execute methods have changed to accept a Session instance of a MongoServerBinding (soon to be re-named Cluster).