Add a granule to granulepos conversion function. Fix the duration
function for vorbis. Handle timestamps on header packets differently
and be more careful about calculating OFFSET and OFFSET_END. After
this change, timestamps for vorbis don't exactly match up with the
timestamps that vorbisparse outputs, but it's unclear if vorbisparse
is actually correct and it would add a lot more code to make oggdemux
match vorbisparse. Fixes#602790.
Adds code that parses headers of various formats encapsulated in
Ogg in order to calculate timestamps and durations of each buffer.
Removes the creation of helper decoder elements to do this calculation
via conversion queries.
Fixes: #344013, #568014.