Merged pull request #283
Refactor existing get/setReadPreference() tests

Made tests consistent across classes, and added getReadPreference() inheritance tests where appropriate. All classes use the same C implementation for setReadPreference(), so perhaps there's a more elegant way to ensure we test the same functionality against each class.
[PHP-668] Allow empty setReadPreference() tags param for primary mode

See doctrine/mongodb#92 for why this was helpful.
[PHP-679 PHP-681] Make setReadPreference() consistent

If not tags are provided, the read preference tagsets should be cleared out. If an error is encountered (either bad mode or invalid tagsets), the read preference should not be modified at all.
[PHP-680] Don't free null pointers in read preference dtors