osx: add accurate GetDelay() function using timestamps from osx

This uses a lockless approach to get tick/delay/readsize in sync.
It does so by making sure rendercallback is neither running
nor has run at any point while we are grabbing data. The
render callback is high prio, thus this busy wait loop
should only ever trigger for a very short time.
AE: let timestamps from sink delay propagate as far up as possible
osx: fix video ref clock to use timestamp of display instead of now

Now represent the time of the call, OutputTime represent when this
frame is to be displayed. Thus technically it's the next vblank,
but i don't think it's worth adjusting for.