youtube.lua: handle relative reference in javascript URL
demux: asf: Use pts as track time instead of dts

Use pts as track time, and then for pcr.
demux: asf: fix computing pts/dts with deltas on sub payloads

Sub-Payloads must have their pts computed from deltapts.
demux: asf: fix time conversion

already microseconds
demux: libasf: add payload extensions guids
demux: asf: decode payload extension

Reads keyframe flag from payload extensions.
Some formats like DVR-MS ships keyframe info into
payload extensions and not as packet flag. Why make things simple ?
demux: asf: only substract preroll from presentation time and duration

Offsets pts & duration
demux: asf: use send time as base time for pcr (fix #6662, #8795)

Using lowest PTS or DTS is a bad idea, as lower video packets are sent
ahead of pts, and most audio tracks are sending packets near to pts.
So we had audio packets coming late, with a lower pts, and corrupted
our PCR as we take the lowest pts among tracks.
We can't also guess the full tracks rolls, so updating after a full
roll instead of each packet is useless.
Send time is a reliable base time.
demux: asf: don't update PCR until preroll is done