Initial implementation

The module will be used by `Workspace.start` - see https://github.com/strongloop/loopback-workspace/pull/147

/to @ritch please review
Shouldn't we call `client.end()` in the callback? If we end via a timeout the connection won't be closed (and or the event listeners will still be attached).