Add error reporting. Fix #28.

* Now, rather than returning None, parse() and match() raise ParseError if they don't succeed. ParseError gives you a nice, human-readable unicode representation as well as some attributes that let you construct your own presentation.
* Grammar construction now raises ParseError rather than BadGrammar if it can't parse your rules.
* Make UndefinedLabel subclass StrAndRepr so __str__ returns the right type.
* Remove some things from the future-directions sections of the readme that are done or just stupid.
* Add Grammar to top-level package namespace. I'm tired of typing ".grammar" at the REPL.