Implement request timeouts (issue #40)

Implemented logic to enforce the 'requestTimeout' config option, to
address issue #40 ("Connection instance not utilizing requestTimeout?")

When executing a request a timeout function is set on the `Connection`,
which runs after `requestTimeout` milliseconds.  When the timeout
elapses a `requestTimeout` event is emitted with an error message to any
listeners.

If the request completes within the timeout span then the timeout
function is cleared and no error is raised.

A value of `0` disables the request timeout logic (i.e. the request runs
indefinitely)


Feel free to offer other solutions.  If this pull is accepted I'll update the documentation as needed.