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
Fix outstanding todo for findAndModify to include the server:port in exception messages