Fixed a connection leak in Cursor.
Change command ReadPreference to Primary for commands that can't be sent to a secondary no matter what kind of server we are connected to.
Fix default messge encoder settings for binary message encoders.
Fixed a few more failing tests.
Only override write command ReadPreference to Primary if connected to a replica set.
Added a test that the Cursor constructor calls Dispose on the connectionSource immediately if the cursorId is zero.
Code review changes.