Switch to continuation-passing-style implementation

With this, the stack doesn't grow with every use of `<|>`, and alternatives are forgotten once we have committed to one branch. This should improve space usage and enable parsing of large documents without a stack overflow. I tested this new implementation with Bibdris. Performance seems to be on par with the old implementation.