Implement WebVTTParser class

Following the general model laid out in WebKit/Blink's WebVTTParser class (with some changes to support both synchronous and asynchronous parsing) may be a good idea, because their structure is very nice and generally workable