RUBY-475 Changing read preference should unpin pool

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