Make media format a property of a MediaFile

MediaFile doesn't need to be "subclassed" (which is decidedly not a Go
idiom); instead, it should have a property that is its format. This
format can then be used as a strategy for determining the content
duration, which was the point of the subclassing anyway.