Errors.add should throw on invalid calls

To simplify rules debugging, prevent dumb mistakes and crashes in error reporters.
Sure, but I don't know where to place it. In string-checkers?
Also test will look like:
```js
        function makeThrowingEsprima(description, line, column) {
            return {
                parse: function() {
                    var error = new Error(description);
                    error.lineNumber = line;
                    error.column = column;
                    throw error;
                }
            };
        };

        it('should throw an error on errors.add', function() {
            checker = new Checker({ esprima: makeThrowingEsprima('object') });
            checker.registerDefaultRules();

            var errors = checker.checkString('import { foo } from "bar";');
            var error = errors.getErrorList()[0];

            // check error...
        });
```

Right?