read: privatize and simplify r5js.Reader.rhs.
scan: add temporary shims to help isolate tokens
scan+read: make Token_.type private
read: make two methods private
read: change the return value of some private methods
add r5js.bnf.Rule interface+impl to improve isolation
read: wire in new r5js.bnf.Rule support