Close #137 by allowing a timeout to be set on requests. If a request times out, this will fire like any other error -- and trigger a retry