Errors.add should throw on invalid calls

To simplify rules debugging, prevent dumb mistakes and crashes in error reporters.
I'm not sure why makeThrowingEsprima is necessary. Why can't you just call `errors.add` with arguments that trigger the exception? 

Something like:

```js
assert.throws(function() {
  errors.add('foo', -1, -1);
})
```

All of the arguments that you passed to `makeThrowingEsprima` could be passed to `errors.add` instead.

Would that not work?