dogeparser: don't fail when non-token character encountered during read_token

Leave the data to be consumed by the next scanner function.
Could make for compact doge. And it doesn't seem to break any test...
dogeparser.tests.test_parser: add awesome tests for compact representation
dogeparser: fix UnboundLocalError bug in error case
dogeparser: much better driver, very useful

Make the driver take in lines from standard input and parse them.
The resulting Python objects are then pretty-printed to stdout