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
Revise db/collection access PHP-667 test
Merged pull request #298
Fixed PHP-355: Driver does not honour connection 'timeout'

Previous fix to PHP-356 fixed the timeout for creating the actual
connection, while this fix deals with timeout for the ping/pong game we
need to play with mongod when bootstrapping the connection.

Note: These are two (three) different options!
connectTimeoutMS is exclusively used for connecting to the server
socketTimeoutMS  is used for data transmissions
and the 3rd one
wTimeoutMS       is _server side_ replication timeout

The socketTimeoutMS can be adjusted per-query, while connectTimeoutMS
can only be set in the ctor.
The connectTimeoutMS is is also used when attempting to reestablish
connection to the server after f.e. query timeout (socketTimeoutMS).

To make things consistent we should probably consider allowing
"socketTimeoutMS" as a query options, today it is simply called
"timeout" which is a littlebit ambiguous
Changed signature of mongo_io_recv_data() to be the same as mongo_io_recv_header().

Keeping our APIs consistent since 2012 :-)
Merged pull request #296
Fixed PHP-688: Default connect() timeout is 1000 _seconds_, not
milliseconds

uhh, no. The default was never 1000 seconds

The caller used to send 1000 *ms* as the default, not seconds.
Since the caller was hardcoded this check never kicked in until now
Merged pull request #300
We support timeouts now, use it
Make sure we print something out when this test fails

Also update the errormessage which seems to be have improved in certain
cenarios in 2.3.x

The first and the last connection hashes were actually identical and
therefore pretty meaningless, so made sure all 3 are unique
Merged pull request #301