RUBY-475 Changing read preference mode should unpin replica set members

Please review, I've refactored since we spoke yesterday to make it much cleaner than it was.