Refactored some common whitespace-parsing code in scanning both scalars. Implemented the flow collection tokens.
We're now using exceptions for errors, and scanning/pushing tokens is exception-safe (using a set of "limbo tokens").