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.
Note: nodeIsMissing is more correct here.  There may be cases where we have a body (i.e. it is *defined*), but it is still *missing*.  In that case, we don't want to proceed and perform further checks that will just be noisy.

A very good example of this are the errors for the body of things that *do* require bodies, that they must have a return statemnet or throw statement.  The node is *required*.  So it will *not* be undefined.  But checking just for 'undefined' will mean that we go forward and report the issue about return/throw being missing.  

This unifies the concept of a missing *required* node, and a missing *optional* node.  Something that 'undefined/defined' did not encode previously.