Fix whitespace CS in get/setReadPreference() tests
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.
Fixed PHP-668: Allow empty setReadPreference() tags param for primary mode

See doctrine/mongodb#92 for why this was helpful.
Fixed 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.
Fixed PHP-680: Don't free null pointers in read preference dtors
Replace ambiguous variable names in read preference tests
Merge branch 'pull-request/282'

* pull-request/282:
  Replace ambiguous variable names in read preference tests
  Fixed PHP-680: Don't free null pointers in read preference dtors
  Fixed PHP-679 PHP-681: Make setReadPreference() consistent
  Fixed PHP-668: Allow empty setReadPreference() tags param for primary mode
  Refactor existing get/setReadPreference() tests
  Fix whitespace CS in get/setReadPreference() tests
Fix PHP-687: Avoid premature casting during MongoDate arithmetic
Merge branch 'pull-request/299'

* pull-request/299:
  Fix PHP-687: Avoid premature casting during MongoDate arithmetic