Improve error reporting for read errors

Print read errors with as good source location as possible.  For
premature end of file, try extra-hard to find good source position by
explicitly scanning for unbalanced parenthesis.

See #76