defaults: merge headers

As requested (https://github.com/mikeal/request/issues/257) headers are merged into default headers. In the example below, the user agent isn't lost. 

```javascript
var req = request.defaults({
  headers: {
    'user-agent': 'Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3)'
  }
})

req(url, { headers: { accept: 'application/json' } }, callback)
```
as a matter of style, i don't like to have the return value definition extend to blow the return line.