Added line number tracking to tokenization.

The toknizer now tracks the filename and line numbers of tokens for
better error reporting. This includes the addition of a __str__ method
for Tokens.
As an aside, removed redundant block tests.
Added associated tokens and filenames to ParsingExceptions.

ParsingException now has a token attribute, in order to carry as much
information about the token that triggered the exception as possible
back up to the handler. Likewise, there is now a filename attribute, in
order to help identify the file in which the exception took place.
The filename is redundant when there is a token, but notably useful when
the PE is triggered by an unclosed block.

Includes a small addition to util to fetch the filename from a stream,
and a tweak to tokenize to use it as well.
Also, minor cleanup in tokenize: added comment describing states.
Added a filename attribute to TEs and testing for exception attributes.

Rather than checking the error messages produced by these exceptions,
directly inspects the token and filename attributes of the PEs and TEs.
Includes some expansion to and cleanup of the test suite.
Merge branch 'feature/exceptions/parsing-error-lineno'