Improve serializer and add array serializer

The serializer code is meant to be used as a means of reading/writing
data from any arbitrary type of input/output.

The array output serializer makes it so we can stream data to a dynamic
array on the fly.
Add librtmp to obs-outputs

Note that this is a somewhat heavily modified custom version of librtmp.
I modified all the platform specific code that we were using for the
OBS1 to make it platform-independent.

I don't really like the code in this library, but it works well enough,
so I can't really fault anyone for it.  It's just very..  unclean.  Even
for a C library, quite unclean.  Some parts are also a little less safe
than I'd prefer as well.
Add preliminary FLV/RTMP output (incomplete)

 - obs-outputs module:  Add preliminary code to send out data, and add
   an FLV muxer.  This time we don't really need to build the packets
   ourselves, we can just use the FLV muxer and send it directly to
   RTMP_Write and it should automatically parse the entire stream for us
   without us having to do much manual code at all.  We'll see how it
   goes.

 - libobs:  Add AVC NAL packet parsing code

 - libobs/media-io:  Add quick helper functions for audio/video to get
   the width/height/fps/samplerate/etc rather than having to query the
   info structures each time.

 - libobs (obs-output.c):  Change 'connect' signal to 'start' and 'stop'
   signals.  'start' now specifies an error code rather than whether it
   simply failed, that way the client can actually know *why* a failure
   occurred.  Added those error codes to obs-defs.h.

 - libobs:  Add a few functions to duplicate/free encoder packets
obs-outputs module: Use the correct deps variable
Add missing project directives
Error on implicit declaration
Fixup libobs-opengl CMakeLists
Add a new install function to install targets into the datadir structure

This is mainly intended to be used for preloaded/injected DLLs, which
don't belong into the libdir or plugindir.
Disable strict-aliasing to avoid a bunch of possible problems
Add config.h generation and wrapper header, currently only for OBS_VERSION
Remove hard dependency on PulseAudio
Merge pull request #52 from BtbN/pfix

Several CMake fixes and enhancements
obs-output module: Fill out more functions

 - Add start/stop code to obs-output module

 - Use a circular buffer for the buffered encoder packets instead of a
   dynamic array

 - Add pthreads.lib as a dependency to obs-output module on windows in
   visual studio project files

 - Fix an windows export bug for avc parsing functions on windows.
   Also, rename those functions to be more consistent with each other.

 - Make outputs use a single function for encoded data rather than
   multiple functions

 - Add the ability to make 'text' properties be passworded
Fix bug where outputs wouldn't start up properly
Initial Implementation of glx/xcomposite based capture
fixup! Initial Implementation of glx/xcomposite based capture
fixup! Initial Implementation of glx/xcomposite based capture
fixup! Initial Implementation of glx/xcomposite based capture
fixup! Initial Implementation of glx/xcomposite based capture
fixup! Initial Implementation of glx/xcomposite based capture