Simplify incremental parser.

Simplify logic for our synax cursor so that it can avoid costly array manipulations.
While the javascript Array API is quite rich, the implementations seem to have an
(understandably) difficult time providing fast access across many interesting operations
(like shift, unshift, splice, etc.)

We now just keep a true cursor and use that to keep track of where we are, updating
accordingly in a simple manner.
TypeError: Unable to get property 'type' of undefined or null reference at getImplementorsAtPosition