Extract WebVTT::Blob class
Extract WebVTT::Blob class

Currently the library requires that WebVTT data come from a file, since
`WebVTT::File` is initialized specifically with the path to a file.
However, it’s useful to also be able to parse WebVTT data contained in a
string in memory.

Extracts a new `WebVTT::Blob` class, which takes all the parsing logic
previously contained in `WebVTT::File`. `WebVTT::File` is now a subclass
of `WebVTT::Blob`, which exposes file-specific functionality (including
saving) and a constructor that still takes a filename.

I didn’t add any new tests, since the parser tests thoroughly exercise
the functionality in `WebVTT::Blob` via its `WebVTT::File` subclass. I
couldn’t think of a way to specifically test the `Blob` constructor that
fit into the general pattern of the parser tests.

HeyWatch/webvtt-ruby,opencoconut/webvtt-ruby