Greatly improved speed of parsing a large web page

Previously, large web pages would take a super long time to lex and parse (52
minutes to parse a 4.3MB html file). The bug seems to have been in the lexer,
specifically the special cases for scripts and comments. It was attempting to
check if the current position represented the start of a script or comment.
However, the code that it was using was:

    if (input_document.find("<!--", i) == i){
        /* tokenize the comment */
    } else if (input_document.find("<script", i) == i){
        /* tokenize the entire script tag */

This was the source of the slow-down. It is effectively searching through the
entire HTML document for these strings on EVERY SINGLE CHARACTER.

This effect was especially pronounced when I ran it on an Apache directory
listing, because it includes no scripts or comments. Thus, each search walked
through the entire document, making it incredibly slow. It was effectively
running in O(n^2) time, and on a document 4.3 MB that's a couple trillion
calculations.

I was able to speed this up by creating a function that just checked if the
current position matched a given string, which takes at maximum O(m-1) time to
dispove a match (where m is the length of the string being searched for). Now,
instead of taking an hour to process that 4MB file, it takes 3 seconds. Hurray
for efficiency!