Syntax check by parser

The implementation would probably have been a little easier if location was available in the `Parser::SyntaxError` objects, but since the diagnostics consumer mechanism is there, I thought it's better to use it. Do you agree @whitequark or do you want to add location to the exception objects?

Unfortunately, there's one Ctrl-C test that fails intermittently now, and I have no idea why. I've set it to *pending*. I hope @yujinakayama can take a look.

This is the first part of a solution for #207.