scan: add r5js.scan.TokenStream+impl to abstract token checkpoint+restore
read: wire in TokenStream in place of custom logic