Fixes PHP-682: Remove redundant MongoGridFSCursor::key() implementation

This was changed in 1.3.0 to return the document _id, so it can simply extend the base MongoCursor::key() method now.
Merged pull request #285
Fixed PHP-658: Add error codes for GridFSExceptions
Test for exception codes too for PHP-658
Merged pull request #279
Move options from mongo_server to mongo_server_opts

This makes it easier to pass around all options, for example to fix
PHP-356 (driver does not honor connection timeout)
Fixed PHP-356 (Driver does not honour connection 'timeout')

The function already supported getting passed in a connection timeout
but the passed in value was hardcoded.
To be able to retrieve the user specified connection timeout we need to
pass in the mongo_server configuration options (mongo_server_opts).
Rename *_opts to *_options as that's how it's used everywhere elase.

Also changed some of the CS - it's in new code, so shouldn't conflict.
Merged pull request #286
Fixed PHP-683: Add support for the connectTimeoutMS connection parameter
Make sure the final value ends up below the replaced value in the logs.

I've made sure that atoi() is only run once. I've added a title for the test,
and made sure that the test works with replicasets (which have an extra option
to spit out).
Merged pull request #287
Fixed PHP-685: wtimeout option is not supported per-query

We simply never checked for the option in the options array.
Now we'll fall back on the MongoCollection->wtimeout (which inherits the
wtimeout from MongoDB->wtimeout, which is set by the connection string,
or defaults to PHP_MONGO_DEFAULT_WTIMEOUT)
Tweaked log messages and fixed all remaining test cases.
Fixed test case - I can actually replicate that fast.

Setting w=7 as we do that for some other tests to test timeouts as well (f.e.
in replicaset/bug00569-004.phpt).
Merged pull request #290