Calculate start and end times within chapter

Virtus for the win!
Add index to chapters through a chapter collection
Have ChapterCollection include enumerable
Decouple MetadataParser from ChapterCollection
Rename ChapterCollection to ChapterList
Rename Encoder to FFMpeg and run all ffmpeg commands through that
Have MetadataParser return an array hashes instead of an array of structs

Passing a struct into a Virtus class (Chapter) causes an error because virtus calls to_hash
Rename parse_chapters to parse
Add from_metadata to chapter
Refactor FFMpeg so runner doesn't need to be passed in
Have MetadataParser create a chapter list
When adding a chapter to a chapter list, set chapter.list the the containing list

calculate chapter.index based on the containing list
Remove need for Chapter.from_metadata
Wire up splitter to call the passed in codec
Refactor ffmpeg spec
Don't need to pass filename to Splitter.split
Actually set the command runner
Move ffmpeg commands for better frame accuracy
Move out splitter to its own file