Ensure that there's a default for every transition

So that there are no longer any errors during parsing.
A slash encountered when in attributes probably indicates a void tag
Run generate_fsm.py to regenerate htmlparser_fsm.h
More callbacks:

  - On cancelling a tag or comment
    (which says "No, it didn't turn out to be a tag/comment after all")
  - On exiting a tag
    (when the end of a valid tag is reached)
  - On exiting a comment
    (when the end of a valid comment is reached)
Fix when on_enter_possible_tag_or_comment() callback is called
Detect a '<' within a tag
Run generate_fsm.py to regenerate htmlparser_fsm.h
Should cancel possible tag or comment at the start of a declaration

Not at the end of the declaration
Update tests to reflect the fact that there are no error conditions now
Include self as a contributor
Add a URL to Google's original implementation