- 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.
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.