Add support for multipart form data via the request options

(See original proposal here #924)

#### Summary
Instead of creating your own form for multipart uploads and having to append data separately, pass the data you'd like to attach via the request options argument. For more advanced cases where the third append argument is required, the current solution can still be used.

#### Before
```javascript
// From README#Forms
var options = { /* ... */ };
var r = request.post(options, someOptionalCallback);
var form = r.form()
form.append('my_field', 'my_value')
form.append('my_buffer', new Buffer([1, 2, 3]))
// ...
```

#### After
```javascript
var options = {
    url: 'http://service.com/upload',
    formMPU: {
        my_filed: 'my_value',
        my_buffer: new Buffer([1,2,3])
    }
};
request(options, someOptionalCallback);
```
This will break in 0.8 because this stream will be emitting data events prior to the server listening and the test starting. This var needs to move in to the test, or this needs to be a function that returns this object.