Merge pull request #72 from RickEyre/issue15

Add snap-to-lines flag to cue settings. Closes #15.
[WIP] Deal with raw utf8 data as well as strings, add TextDecoder for node via submodule (#43).
Fixes (tests pass, need to deal with things in pure strings still).
Finish up UTF8 decoding work.

- Removed the string parsing use case as I don't really think
we need to support that right now. We can add that in the future
if we want too.
- The test suite now passes all vtt test data to the parser as
Uint8Arrays.
Simulate streaming up to only the first 3 bytes.

Switching over to using a decoder was causing us to fail on
files with BOMs because the #whatwg encoding algorithm expects
to see the BOMs before receiving new chunks. Therefore, the
first chunk must always have the full BOM in it if there is
one.
Add bad encoded utf8 test.

I've removed fail-bad-utf8.vtt and added a custom JS test
for bad utf8 encodings in utf8.js.