Add support for wTimeoutMS in the connection string as per the spec

We previously supported the incorrectly named "wTimeout" setting, and
continue to do so. See PHP-613
Refactor option parsing just like as we have for connection timeouts.

Added a test case, as well as fixed another one after changing the message -
which is now inline with the connectTimeoutMS options as well.
Merged pull request #293
Fixed PHP-684: add support for socketTimeoutMS

Also renamed that ambigous PHP_MONGO_DEFAULT_TIMEOUT to
PHP_MONGO_DEFAULT_WTIMEOUT

We now apply the socketTimeoutMS option if the user hasn't explicitly
modified the MongoCursor::$timeout variable
Fixed grammar in comment.
Refactor so that we only use atoi() once

Inline with the other options that we've added today.
Added missing title to test, and an extra test case.

Also rename the headers to reflect the case of the options that are tested.
Merged pull request #294
Rename the test case, and add the reverse variant as well.
Fixed PHP-491: Forking and connection handling still fails.
Merge branch 'pull-request/295'

* pull-request/295:
  Fixed PHP-491: Forking and connection handling still fails.
  Rename the test case, and add the reverse variant as well.
Fixed PHP-650: Segmentation fault when using findAndModify().

In some cases, where findAndModify() causes a cursor (or other timeout), the
returned document is NULL. Because we didn't check for this, a segfault
occured.

Writing a test case for this is tricky as we'd need to simulate a failure.
Merge branch 'pull-request/284'

* pull-request/284:
  Fixed PHP-650: Segmentation fault when using findAndModify().
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