- added missing header for linux
added linux test module with first implementation of a screengrabber using the xshm extension for x11
Added initial Mouse pointer lib

Added library to get the mouse pointer with the XFixes
extension and draw it via a sprite.
Improved mouse cursor handling

If the mouse pointer changes but has the same size
as before, the texture will be updated.
The mouse pointer is now moved with a matrix function.
Added Blending for mouse pointer
some cleanups

- added some documentation
- removed some debug statements
Moved screen grabber code to _tick function

Moved the screen grabbing and texture generation to the
_tick function in order to keep _render fast
Implemented _tick function in xcursor library

Implemented a _tick function in the xcursor library,
so the cursor texture and position can be updated
from the input plugin _tick function.
Removed unnecessary members from data struct
migrated xshm video source to the new plugin api
added initial pulse audio input plugin

- first try at implementing a pulse audio input plugin,
  it is currently completely untested.

- added license headers to source files
In the API update the diffuse effect got renamed to image.
Removed unnecessary buffer

Instead of copying the data from pulse to a local buffer and
then push it to obs, the pointer from pulse is now used and
pa_stream_drop() called afterwards.
added support for older versions of ffmpeg
fixed warnings
reformatted source to kernel style
use pa_mainloop_iterate instead of own implementation

pulse audio provides it's own convenience function to
iterate the mainloop, no need to use a custom one.
use timestamps returned by pulseaudio instead of system time

pulseaudio provides timing information for the stream, we use
that instead of system time.
Revert "added support for older versions of ffmpeg"

This reverts commit 385d5472246632b2e344e35670c9c67e47869c3f.