Allow blank lines in the description

Fixes #10.

This one took a while to track down. By making `UntilLineEnd` optional, everything up to `( NL / !. )` was optional. At EOF, `LineEnd` was repeatedly matching `!.` without advancing the pointer.

Unfortunately, [lookahead assertions are bugged with the `-switch` option](https://github.com/pointlander/peg/issues/33), ~~so I had to drop it to make this work~~.