First draft of grammar. Needs tests.

Also, the "peg" module needs to be checked-in as a submodule or
listed as a dependency or something.

(For now, the peg module lives at https://github.com/jvs/peg)