Added new decklink consumer implementation which does not use scheduled playback but uses DisplayVideoFrameSync() and sleeps until frame has been shown using the timing information returned by GetHardwareReferenceClock(). This seems to reduce the latency (although not as much as I would have hoped) and provide for more deterministic synchronization between multiple instances (for example a Decklink Quad with one device used for fill and another for key).
Colorized diagnostics of synchronizing consumer
Don't try to write more samples before waiting for sync in blocking_decklink_consumer, because it seems to add an extra frame of delay.