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.
Move more syntax methods into functions.
Fix build break.
Move syntax method to a function.
Move JSON related helpers to test library.
Move syntax method to function.
Remove unused methods.
Move syntax lists over to using an array as the raw internal implementation.

This allows the higher levels to enumerate the nodes in a list without any
overhead.
Remove file related to syntax lists.
Remove syntax list types.  Use arrays only.