CLI: Support a maxErrors option to limit the number of reported errors (fixes #664, fixes #238)

I started on #664 and remade this to be simpler and non-static.
is there any reason not to move this behavior up into StringChecker?