Allow incremental parsing to work in more situations.

Previously, we restricted incremental parsing so that it wouldn't apply during speculative
scenarios (like when trying to determine if < was part of a generic type argument list, or just an
arithmetic operator).  This was due to how the parser updated nodes and tokens, and how that could
throw off the incremental parser.  Because of that, hte incremental parser would effectively shut
itself off in speculative scenarios.  Now, we properly handle speculative parsing, and can reuse
far more nodes.  It also means less abstraction leakage betweeen the incremental parser and the
underlying scanner it sometimes needs to defer to.