CSHARP-574: refactor the ReadPreference implementation and fix some issues.
CSHARP-574: reduce possibility of lock contention and move matching logic out of ConnectedInstanceCollection and into ReplicaSetMongoServerProxy.
CSHARP-574: refactor so callers of GetMatchingInstances decide which instances should be matched against.
CSHARP574: added secondary acceptable latency to connection strings and urls to support changin the default value.
minor code review fixes.
CSHARP-574: special case single matching instance and put lock around call to Random.Next.
CSHARP-580: command based helper methods in MongoCollection should use the collection's ReadPreference.
CSHARP-580: alternative implementation that doesn't involve MongoCollection creating a new instance of MongoDatabase.
Return value as it is, if it is already BsonValue or ancestor
CSHARP-594: Fixed similar issue in MapToBsonValue and added unit tests.
CSHARP-595: corrected issue with infinite recursion when converting a BsonValue to another BsonValue.
CSHARP-598: corrected issue with not evaluating member expressions that contain variables and not constants.
CSHARP-600: added secondary ok commands.
CSHARP-600: added support only sending read preference when using one other than primary and secondary preferred or when tags are present.
minor: code review cleanup
CSHARP-600: Encapsulated the configurable delegate that determines whether a command can be sent to a secondary into a new class called CanCommandBeSentToSecondary.
CSHARP-574: SecondaryAcceptableLatency was missing from MongoUrl.
Added change logs for 1.6.1 release.
Moved change logs to the right folder.
Fixed solution file and typos.