Add support for incremental parsing.

Right now the entrypoint just causes a full parse to happen.  But the LS code is
cleaned up to take advantage of it appropriately.

This will not be checked in until all the incremental parsing work is complete.
I get the problem of pushing in flags from an outer context and I see how it was cleaned up, but I don't see why that necessitates introducing an extra VariableDeclarationList node. Let/Const live on the variable statement node, no?