OpenGL: Use texture swizzle for BGRA/BGR/A8

On some operating systems, with specific drivers it seems that BGR/BGRA
isn't properly treated as such in certain cases.  This fix will
hopefully force the formats to be treated as BGR/BGRA when actually
rendering, which should get around the implementation-specific issue.
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