Add support for fractional timeout seconds
In order to support fractions of a second timeouts (e.g. 1.5 seconds), this change makes use of `CURLOPT_TIMEOUT_MS` in the `withTimeout()` method. The parameter is still seconds, but is multiplied by 1000 to convert to MS and make compatible with CURLOPT_TIMEOUT_MS.