scan+read: begin to isolate scanner's Token impl behind r5js.Token interface.
read: break up a confusing method in r5js.Reader into two simpler ones