Cast timeout to a number.

This creates consistency in the timeout feature.

The `setTimeout` implementation in node will correctly cast any strings passed in to a number using `*= 1`

This means that 

```js
request({
  uri: '/foo',
  timeout: '5000'
}, cb);
```

will work as expected.

**HOWEVER** the `req.setTimeout` method does not cast strings to number. It instead defaults to no timeout when passed a string. 

To guard against this bug in node core we manually cast the string to a number in `request/request` itself so that it is consistent.