Improve validation for WebVTT files

There currently is no way to check that a file that is read or written by the library is a valid WebVTT file.

This PR ensures that WebVTTReader catches most basic errors. Once it's merged, one can do something like this:

```python
# generate WebVTT
output = WebVTTWriter().write(input)

# validate generated WebVTT
WebVTTReader().read(output)  # will raise errors if the output is invalid  
```

This PR also has a fix for converting SAMI files containing `<br/><br/>` to WebVTT. Previously, it would generate an incomplete cue.