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.
I assume you meant the block below:

```diff
- it('should contain all the valid error properties', function() {
+ it('should not contain invalid properties', function() {
```

I fixed this.