list DSL grammar

@quavmo 

TL;DR treetop is awesome.

This isn't hooked up to the phrase generator yet, but it will let us decouple file loading from parsing and let us write functional tests that go from raw lists to polished output without touching the filesystem. Also, we'll never have to use a regex again. Also, I have Big Things planned for this.