Support all of HTML's character entities in WebVTT

This updates the VTTTokenizer to align with the updated WebVTT tokenizer
steps:

 https://w3c.github.io/webvtt/#html-character-reference-in-data-state

and

 https://w3c.github.io/webvtt/#html-character-reference-in-annotation-state

The old states for handling "escapes" are removed, adding new ones per
above, for invoking the HTML parser's entity matcher.
A new WEBVTT_SWITCH_TO operation is also added so that state transitions
can be performed without advancing the input position. (Matches
mechanics of the HTML parser.)

The WPT test webvtt/parsing/cue-text-parsing/tests/entities.html is
updated since it had an incorrect expected result for the "&notit;"
case.

Old, now incorrect and/or redundant, tests for entities are removed.

Bug: 761303
Change-Id: I8ffb4fb2da7169c2ba3c84eb8c3206daabefbb30
Reviewed-on: https://chromium-review.googlesource.com/647586
Reviewed-by: Philip Jägenstedt <foolip@chromium.org>
Commit-Queue: Fredrik Söderquist <fs@opera.com>
Cr-Commit-Position: refs/heads/master@{#499473}
diff --git a/webvtt/parsing/cue-text-parsing/dat/entities.dat b/webvtt/parsing/cue-text-parsing/dat/entities.dat
index 8f5e99d..6522e3f 100644
--- a/webvtt/parsing/cue-text-parsing/dat/entities.dat
+++ b/webvtt/parsing/cue-text-parsing/dat/entities.dat
@@ -147,4 +147,4 @@
 &notit;
 #errors
 #document-fragment
-| "\u00ACit"
+| "\u00ACit;"
diff --git a/webvtt/parsing/cue-text-parsing/tests/entities.html b/webvtt/parsing/cue-text-parsing/tests/entities.html
index 9f70cd1..dbae784 100644
--- a/webvtt/parsing/cue-text-parsing/tests/entities.html
+++ b/webvtt/parsing/cue-text-parsing/tests/entities.html
@@ -34,6 +34,6 @@
 {name:'9ed59950764468c4ef2948d71cf75c3f2b60c74d', input:'%26notin%3B', expected:'%23document-fragment%0A%7C%20%22%E2%88%89%22'},
 {name:'71a6efcfab81264fb95bb3234c59687c11c72baf', input:'%26not%3B', expected:'%23document-fragment%0A%7C%20%22%C2%AC%22'},
 {name:'86d7c20ca3c060f9e699c7da43927c4a07a5d569', input:'%26not', expected:'%23document-fragment%0A%7C%20%22%C2%AC%22'},
-{name:'314cd94292df37044e90ce27b5606bf8ec636b94', input:'%26notit%3B', expected:'%23document-fragment%0A%7C%20%22%C2%ACit%22'}
+{name:'314cd94292df37044e90ce27b5606bf8ec636b94', input:'%26notit%3B', expected:'%23document-fragment%0A%7C%20%22%C2%ACit%3B%22'}
 ]);
 </script>