WIP: Keep tokens in the tree

This is an attempt to explore what it would look like to keep all the tokens
in the AST. The goal is to allow better round tripping. We would need to keep
a reference to the "whitespace" in front of the tokens too.