Retrofit TokenRange to use new slice-mark range abstraction

Not throughly tested but compiles.
HereDoc and tokenized strings are mostly stubbed out for simplicity.