Add Marionette.Error

Resolves #1654.

I left the error messages (mostly) alone. We can improve the actual content of these errors in a future PR.
We're protected by: `if (Error.captureStackTrace) {`