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 encoded characters in it (U+0080 and U+0094). The previous JSON file was generated by the 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.