Add disable options for optional plugins
Fix fontconfig cmake module
Fix Freetype cmake module
Fix AppKit find module
Fix major misunderstanding of cached variables in all find modules
Add cmake option to disable user interface

Adds:
ENABLE_UI (on by default) which makes it so that the UI is required, and
will fail if a dependency is not found.  This is on by default because
most people are building it with the user interface, and we'll probably
get a lot of issue reports stating "why is there no executable?" if we
don't have this on by default.

DISABLE_UI which forces the UI off.

If neither are set, then the UI will only be built if the dependencies
for it are found, otherwise the UI will be be ignored.
Merge pull request #264 from BtbN/disable_stuff

Add disable options for optional plugins, various cmake fixes
Add interaction support to libobs
Add helper function to get specific scene item
Add interaction gui
Merge pull request #265 from kc5nra/interaction

Add interaction support to libobs and support for pumping the events/interaction in gui
Disable safeseh on 32bit builds
Merge pull request #267 from BtbN/seh

Disable safeseh on 32bit builds
Remove interaction event filter in destructor

QT fakes a mouse move when destructing which is
caught by our filter
Move raw pointer usage/delete to RAII in interaction
Set proper source relative X,Y coords on wheel interaction
Fix APPLE -> __APPLE__ def in interaction gui
Replace ARB_separate_shader_objects extension

This replaces the ARB_separate_shader_objects extension with traditional
linked shaders.  I was able to get the existing system to use linked
shaders without having to change any libobs graphics API.

This essentially creates a linked list of shader programs with
references to the shaders they link.  Before draw, it searches that
linked list for a particular pixel/vertex shader pair, and the linked
program associated with it.  If no matching program exists, it creates
the program.
Remove unused variables