feat(errors): use real `Error` objects, prefix error messages

So that test frameworks like mocha can show the real error message
instead of `[Object object]`

All errors are real `Error` objects, all errors are prefixed with
commandName: args, thanks to @sebv for the idea
fix(remote): automatically chain custom Constructors

like it did before
Merge pull request #171 from camme/errors-and-Constructors

Errors and constructors