Refactor placeholder parser

This is to allow yield and await everywhere.

Also, restructur the code to reduce code size.
I wonder if this magic could be clearer with better names?
  `doParse` applies the parse appropriate to the syntax tree type.  parseDispatcher?
  `makeFunction` creates a function that passes doParse to yet-another-parse-function.  makeDispatchApplier?