[WIP] FFmpeg Source

# Overview

This allows a user to capture from any FFmpeg source (eventually, though the interface is limited to inputs that support a filename API at the moment). This will allow capture of many kinds of things through libavdevice. It also allows filtering of other media through libavfilter (allowing the looping of input video files / gifs / etc.).

# TODO
1. The "settings" user interface could use some work
2. I've been having issues with audio input, so I removed the initial code in this version.
3. There's currently a crash in FFmpeg with the "avfoundation" device in libavdevice that will hang the whole application if you try to open the webcam of a macbook while the hat is closed. This happens in the stable version of FFmpeg as well, so it's a bug on their side. I'm submitting a report though I might be able to just fix it myself.
4. Haven't tested on anything but OSX as I'm currently at school.