Raise a SyntaxError when passed bad syntax.

Prior to this change, bad syntax would raise a ParseError which wasn't very
descriptive. This also inserts the filename into the exception message
so it's clear where the bad syntax was.

File "bad.py", line 1
  a = 42
  ^
IndentationError: unexpected indent
3 files changed