Streaming responses?

I've been investigating ways that I can add streaming responses to Guzzle so that it can working with streaming APIs like Twitter, force.com, etc.

**Note: I'm looking for advice on this PR. This PR isn't quite done.**

This PR adds a StreamRequestFactoryInterface object that converts a Guzzle\Http\Message\Request object into a PHP stream that uses the http or https stream wrappers. This allows you to pull off of the stream as needed and arbitrarily close the stream  as needed.

```php
<?php

require 'vendor/autoload.php';

use Guzzle\Http\Client;
use Guzzle\Stream\PhpStreamRequestFactory;

$client = new Guzzle\Http\Client();
$request = $client->get('https://stream.twitter.com/1/statuses/sample.json')
    ->setAuth('user', 'pass');

$factory = new PhpStreamRequestFactory();
$stream = $factory->fromRequest($request);

$c = 0;
while (!$stream->feof()) {
    var_export(json_decode($stream->readLine(), true));
    if (++$c > 100) {
        break;
    }
}

$stream->close();

echo "\n";
```

There are some issues with this implementation in that it does not currently trigger most of the lifecycle events used when sending during the normal CurlMulti process (e.g. request.error, request.exception, request.sent, request.complete -- though I'm not sure these can be supported). This implementation also only utilizes HTTP/1.1-- we'll need a chunked decoding filter to be able to use 1.1.

There are probably other cURL specific options that can be carried over as context options for the stream (e.g. timeouts).

An alternative to this approach would be to implement a stream wrapper the utilizes Guzzle's CurlMulti object and would allow you to streaming read off of the connection. This would require a little bit of refactoring to CurlMulti and possibly a subclass.