Implement some basic audio mixing
Implement auto output resampling (if requested)

If there are for example more than one audio outputs and they have
different sample rates or channels and such, this will allow automatic
conversion of that audio to the request formats/channels/rates (but only
if requested).
Add Libavutil dependency for obs-ffmpeg plugin

av_frame_alloc, av_frame_free, among others, live in libavutil
- 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.