Track prefixes within {Or,Seq}Rule.

Next up is to make a parse fail if the prefix parse fails.

In general, I suspect it will be a best practice to allow any prefix to
be empty, but I still think we should make the parse fail in case a
prefix cannot match the empty string (and doesn't match what's next in
the iterator of course).

Having had to fix up 13.water, I also have two other thoughts:

1. Make sure what we're left with feels easy to work with to language
   designers. That *is* the main point, after all!
2. It may be good to have a val() function which acts very similarly
   to src() except that it excludes the first prefix. This would have
   made working with 13.water much easier.