Fix issue when using multiple video encoders

 - Fix an issue that could occur when using more than one video encoder.
   Audio/video would not sync up correctly because they were expected to
   be paired with a particular encoder.  This simply adds a little
   helper variable to encoder packets that specifies the system time in
   microseconds.  We then use that system time to sync

 - Fix an issue with x264 with fractional FPS rates (29.97 and 59.94
   particularly) where it would create ridiculously large stream
   outputs.  The problem was that you shouldn't set the timebase_*
   variables in the x264 params manually, let x264 handle the default
   values for it and leave them at 0.

 - Make x264 use CFR output, because there's no reason to ever use VFR
   in this case.
Merge branch 'master' of https://github.com/jp9000/obs-studio
Move opengl loader into a seperate static library, so plugins can use it
Flush after logging
Add copy_texture_region function
Rewrite pulseaudio input

Now more flexible and easily extendable
Add xcomposite capture plugin
Add cropping support to xcompcap
Add event processing code
Improve X error handling
Improve algorithm to re-identify a window