Towards making LayoutPreservingTransformer work.
Fix position getters for synthetic nodes.
Nail down LayoutPreservingTransformer.remove
Reindex after removing to allow multiple removals.
Starting LayoutPreservingTransformer.insert
Extract TokenStream class from LPTransformer.
Fix typo.
Refactor TokenStream a bit.
Fix LPTransformer.insert
Have TokenStream used a linked list, not an array

This is more robust since we can map positions to nodes once
and for all, whereas with indices there's trouble because they
can change and go out of sync.

There are still problems to work out re: correctly handling
synthesized code.
Rename TokenNode to Node (TokenStream.Node)
Add token Fragments to wrap start/end nodes.
Add a tokenizing pretty printer.
Fix tiny TokenStream bug, add test to AllTests
Extract TokenStream.Fragment out into its own file
Rename the different TokenStreamFragment factories

Also make sentinel nodes more explicit.
TokenStream doesn't need to be iterable.
Move some methods out of TokenStream.
Move Functions/Predicates to Node.

Also, change fromTokenList to fromTokens, which takes an Iterable.
Remove asTokenList.
Simplify fragment manipulation with a helper.