GL sync

Adds video_hard_sync option to attempt syncing more aggressively. Can lower latency at expense of performance, kinda the opposite of video_threaded. Uses GL_ARB_sync extension and not glFinish() due to the dubious nature and implementations of it.