PHP-1021 Support maxTimeMS option in MongoCollection::findOne()

Also adds support to MongoGridFS::findOne(), since it wraps MongoCollection.
Merge pull request #625
PHP-914: ->aggregate() needs explain facility

Add support for additional $options array when using a single array of pipelines

$pipeline = array('$operator' => stuff);
Previously the proto for this function was:
->aggregate($pipeline [, $pipeline [, $pipeline]])
or
->aggregate(array($pipeline, $pipeline, $pipeline))

Now we support also:
->aggregate(array($pipeline, $pipeline, $pipeline), array("option" => "value"));

This makes it possible to pass arbitrary arguments to ->aggregate(), such as:
- array("explain" => true)
- array("maxTimeMS" => 100)
Added support for maxTimeMS option for aggregate
Skip these on pre2.6
Improve zpp readability as per review
Use configureFailPoint() in maxTimeMS tests
Rename tests for consitency
Merge pull request #627 from bjori/PHP-aggregate-helper-fixes

PHP-1028: Add $options support to ->aggregate()

* bjori/PHP-aggregate-helper-fixes:
  Rename tests for consitency
  Use configureFailPoint() in maxTimeMS tests
  Improve zpp readability as per review
  Skip these on pre2.6
  Added support for maxTimeMS option for aggregate
  PHP-914: ->aggregate() needs explain facility
PHP-1019: Empty Batch Insert should throw exception
Merge pull request #621 from bjori/PHP-1019-throw-exception-on-empty-batch

PHP-1019: Empty Batch Insert should throw exception

* bjori/PHP-1019-throw-exception-on-empty-batch:
  PHP-1019: Empty Batch Insert should throw exception
PHP-1030: Default GridFS chunk size default to 255K (from 256K)
Merge pull request #638
PHP-1022: Removed commandCursor in favour of aggregateCursor.

It now should stay on collection, next to aggregate. It does not support a
varargs pipeline.
Merged pull request #631
Added the connection hash that was used while running a command to its output.

We are adding this as a subitem of the $php key, as we can not rely on f.e.
"hash" to be added by the server at some point. Hence we namespace with $php.
It also adds this for *every* command to be consistent. Of course, right now,
it's going to be useful only for MongoCommandCursor::fromDocument, which is
coming in the follow up PR.
Merged pull request #635
Refactor cursor info gathering functions into one.
Add MongoCommandCursor::createFromDocument

This is the implementation for what we discussed during our meeting.
Merged pull request #636