Add a bit more documentation

- Add bit more documentation to some of the main headers

- Fix alignment for the size of the name string of a obs_data_item.
Revamp rendering system to allow custom rendering

Originally, the rendering system was designed to only display sources
and such, but I realized there would be a flaw; if you wanted to render
the main viewport in a custom way, or maybe even the entire application
as a graphics-based front end, you wouldn't have been able to do that.

Displays have now been separated in to viewports and displays.  A
viewport is used to store and draw sources, a display is used to handle
draw callbacks.  You can even use displays without using viewports to
draw custom render displays containing graphics calls if you wish, but
usually they would be used in combination with source viewports at
least.

This requires a tiny bit more work to create simple source displays, but
in the end its worth it for the added flexibility and options it brings.
Added more paths to gitignore for building
Rename obs_viewport to obs_view

I felt like the name could cause a bit of confusion with typical
graphics viewports, so I just changed it to view instead.
Merge branch 'master' of https://github.com/jp9000/obs-studio
Remove majority of warnings

There were a *lot* of warnings, managed to remove most of them.

Also, put warning flags before C_FLAGS and CXX_FLAGS, rather than after,
as -Wall -Wextra was overwriting flags that came before it.
Fix a some more linux/GCC specific warnings
Fix inttypes.h usage

...I neglected to put a '%' character before using the PRI* macros.
Fix bug with linux build

...Screw it.  %llu it is.
Optimize GL staging surface and fix mac issue

Staging surfaces with GL originally copied to a texture and then
downloaded that copied texture, but I realized that there was really no
real need to do that.  Now instead they'll copy directly from the
texture that's given to them rather than copying to a buffer first.

Secondly, hopefully fix the mac issue where the only way to perform an
asynchronous texture download is via FBOs and glReadPixels.  It's a
really dumb issue with macs and the amount of "gotchas" and non-standard
internal GL functionaly on mac is really annoying.
Fix variable placement, not safe with goto usage
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.
Merge branch 'master' of https://github.com/jp9000/obs-studio
Diffuse -> Image.