Move scanner to a mostly functional implementation.

Our ScannerToken still remains as a class.  However, all the code related to
actually scanning tokens or trivia is now done as functions.
Simplify scanner API.
Remove fullText from syntax elements.
Remove node methods.
Move more methods out of syntax.
Move more syntax methods to functions.
Remove syntax factories.  Just instantiate nodes directly.
Move methods out of syntax node.
Move fullEnd to be a function instead of a method.
Remove unneeded code.
Update LKG.