UTF8 decoding

This builds on top of @humphd's previous work.

* I've removed the string use case as I don't really think we need to support that right now. If we want to do that in the future then we can. 
* spec-example.vtt is being decoded correctly now and has some invisible characters in it (U+0080 and U+0094). The previous JSON file was generated by the old parser, wasn't handling these characters correctly, and so the JSON file was wrong.
* Removed code that deals with BOMs from vtt.js as the decoder will remove them from the stream before decoding it so vtt.js doesn't need to worry about them.

**Note:** We still have to examine fail-bat-utf8.vtt and see if it's being decoded correctly #43.