Fix __all__ in expressions module.

You couldn't import * from it before, because not all the mentioned symbols were defined.
Rewrite grammar compiler so right-recursive rules can be compiled and parsing no longer fails when LazyReferences point to other LazyReferences. Fix #21 and #15.
I forgot to update unwalked_names at one places where we store a resolved rule. Fix #22.

Also, I apparently forgot to push the tests in the previous commit.

Still not terrifically confident in this, but I think it's demonstrably than the original. However, it's one of those things that's so complicated that it has no obvious bugs, not so simple that it obviously has no bugs. Simplify.
Fix tox config so nose finds the tests again.

This reveals that Python 3 support is broken. Whee.
Fix implementations of __str__ in Python 3.

This fixes several failing tests.
Tolerate the unicode flag being on in Python 3 regexes.

This fixes another failing test.
Quit using xrange in Python 3.

2to3 doesn't parse strings.
Tolerate nondeterministic order of rules that pop out of str(Grammar).
Tolerate different reprs on different Python versions.

This fixes the last of the tests failing in Python 3. Tox is happy now.
Polish readme for 0.4 release.
Add a `print` to a docstring so it actually reflects the pretty-printed output.
Add parentheses to the syntax reference table in the readme. Fix #25.
Work around tox bug where it sees that whole comment as part of the dir name.
Support multi-line rules, comments in the middle of rules, and all other sorts of horrific behavior. Fix #19.

Surprisingly, it cleans up the RuleVisitor quite a bit.

* Had to add a couple more rules, like negative lookahead, to the bootstrapping grammar.
* Separated the notions of labels and references, which solves the problem of figuring out where a new rule starts and, as a bonus, saves some backtracking in the visitor.
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.
Factor out some duplication in parse(), and tweak some comments and docs.
Add pos kwarg to Grammar.parse as well.
Add line and column reporting to ParseError.
Tweak a few things in the readme to be more encouraging.
Come up with a benchmarking framework, and add a basic speed test.

This will enable me to work on improving error trapping without risking making performance crappy.

(And really, I *avoided* coming up with a benchmarking framework--yay!)