Add a comment and replace some class references

Also, removed some unused headers, and moved the constructor/destructor
functions to the top
Compact/clean up OBSRef class just a bit more

Replace a NULL with nullptr and reduce code duplication with the =
operators
Use QMetaObject::invokeMethod in libobs callbacks

Doing this ensures Qt thread safety when adding/removing sources and
scenes, because it will defer the function call to the main thread.
Merge pull request #38 from BtbN/master

Move CPack win32 generator from NSIS to WIX
Remove external ref count visibility

The returned ref count was never used and the returned value doesn't
actually confer any meaning in a multithreaded environment
Remove m4 directory (No longer in use)
Add missing return type to function
Remove external ref count visibilty from obs_data_* as well
Add wrappers for obs_data_t and obs_data_array_t
Implement output scaling/conversion/downloading

- Implement texture scaling/conversion/downloading for the main view so
  we can finally start getting data to output.

  Also, redesign how it works a bit, it will now properly wait one full
  frame for each step in the process:  rendering the main texture,
  scaling the main texture to an output texture, staging/downloading the
  ouput texture, and then outputting that staged data.  This way, the
  GPU will have more than enough time to fully complete each step.

- Fix a bug with OpenGL plugin's texture staging function.  Was using
  glBindBuffer instead of what should have been used:  glBindTexture.

- Change the naming scheme of the variables in default.effect.  It's now
  named with the idea of just "color matrix" in mind instead of "yuv
  matrix", and instead of DrawRGBToYUV, it's now just DrawMatrix.
Improve naming scheme of libobs core structures
Remove trailing whitespace from gl-x11.c (OCD)
Eliminate more trailing whitespace from gl-x11.c
Messed with GL loader some more.

I've branched well off of upstream glloadgen since they don't appear to be very active in between GL versions.

1) Changed how the address finder functions are set to be more sane.
2) Added *all* possible extensions. For the lulz.
3) Fixed a retarded bug in IsVersionGEQ.
4) Slapped myself for not seeing IsVersionGEQ bug earlier. Most important change.
Fixed gl-subsystem.c to reflect changes to GL loader API.
Broke Windows, here's a fix.
Corrected a version check which caused crashes on non-4.3 profiles.
Minor adjustment to code. ARB version of debug_output doesn't use GL_DEBUG_OUTPUT
Changed version checks... I got most of them wrong.
Add planar audio support, improve test output

- Add planar audio support.  FFmpeg and libav use planar audio for many
  encoders, so it was somewhat necessary to add support in libobs
  itself.

- Improve/adjust FFmpeg test output plugin.  The exports were somewhat
  messed up (making me rethink how exports should be done).  Not yet
  functional; it handles video properly, but it still does not handle
  audio properly.

- Improve planar video code.  The planar video code was not properly
  accounting for row sizes for each plane.  Specifying row sizes for
  each plane has now been added.  This will also make it more compatible
  with FFmpeg/libav.

- Fixed a bug where callbacks wouldn't create properly in audio-io and
  video-io code.

- Implement 'blogva' function to allow for va_list usage with libobs
  logging.