derp: Make parsers persistent.

This should qualify them for being somewhere between Frozen and DeepFrozen.
More importantly, it makes combining them far easier.
derp: Add some EDSL methods and encapsulate parser state.

We are now ready to factor out some combining functions.