InstrumentedRoundTripper handles cancelable transports

This change allows instrumenting a request made with an http.Client that
has a Timeout set.

Previously, an error would occur when instrumenting an http.Client with
a Timeout set. This is because the instrumented round tripper didn't
implement CancelRequest even when the underlying transport did. This
causes a runtime error when a request is made with the client.

Signed-off-by: Atul Kshirsagar <atul.kshirsagar@gmail.com>