Added ability to pass options to Collection::aggregate

Some aggregate operations take to much time and there is a need to pass custom timeout option, usually -1 value (no limit).

This PR introduces ability to pass options array to Collection::aggregate method.

Example usage:
```php
$pipeline = array(
    array('$match' => array('_id' => 'bar')),
    array('$project' => array('_id' => 1)),
);
$options = array(
    'timeout' => -1
);
$result = $collection->aggregate($pipeline, $options);
```