Add nongreedy parsers for module headers

+ add a hidden method to "Parseable", so that definitions only require one method
+ move parsing code out of InternalParser.ly