Handle audio channels correctly in pulseaudio plugin

This fixes a bug where the pulseaudio plugin always reported
a speaker layout of stereo to obs, regardless of how many channels
pulseaudio actually recorded.
If the default number of channels was different to 2 this would
cause audio distortion.
Merge pull request #260 from fryshorts/pulse-input

Handle audio channels correctly in pulseaudio plugin
Fix bug with source audio

If the audio didn't start at the 0 timestamp, it would misinterpret it
as a timestamp jump because obs_source::next_audio_ts_min is set to 0 on
creation.  Timestamp starting values should be allowed to start at any
arbitrary value.
win-dshow: Add audio support

This implements audio support, allowing not only the ability to capture
the built-in audio from the video device's audio capture pin, but also
the ability to override the default audio with a custom audio device.

The DShowInput::Update function was split up and refactored a bit, as it
was getting a bit large and messy.
Basic UI: Reduce audio meter mute timing threshold

Some devices burst their audio (such as when querying audio from
directshow), and the 250 millisecond threshold that sets the audio meter
back to muted status would erroneously cause the meter to appear bounce
back between muted and unmuted.  Instead, a one second test should be
sufficient time to prevent that from happening.
Use C externs for obs-module.h

This allows inter-sharing of functions such as obs_module_text among
both C and C++ files
Rename linux-xshm module to linux-capture
Combine linux-xcomposite and linux-capture (xshm)
linux-capture: Rename pos_* vars to render_*

the pos_x and pos_y variables were somewhat deceptive, because they were
not actually the poition of the cursor.  They represented the position
of the cursor's bitmap on the screen, not the position of the cursor.
linux-capture: Add x/y cursor position vars
linux-capture: Add cursor capture to xcomposite
No need to subtract window position from translated coordinates
Merge pull request #262 from computerquip/master

No need to subtract window position from translated coordinates
Move timestamp smooth threshold to media-io
Perform timestamp smoothing in media-io as well

Doing timestamp smoothing in obs-source.c is good because timestamps can
typically operate on a different timebase, however, obs-source.c can
also change that time base dynamically (such as with async video and
unexpected timestamp jumps), so in order to ensure that audio is
seamless in the output as well, perform timestamp smoothing in
audio-io.c as well just as an extra precautionary measure.
Add -> operator to CoTaskMemPtr

This adds the ability to get members via the -> operator.
win-dshow: Remove MPEG2 (unlikely to be used)
Add null pointer check for text file

Apparently there was no check for a null pointer file name.
Add more null pointer checks to text source