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);
```
You know what, this should actually be a regular ol' dependency. I'm just not sold anymore on the optionalDependency thing, and making it a devDependency was not correct, that's my bad, I apologize :)