Initial implementation

The module will be used by `Workspace.start` - see https://github.com/strongloop/loopback-workspace/pull/147

/to @ritch please review
...or does `error` do this for us?