Add libv4l2 as requirement for the v4l2 plugin.

In order to convert formats not natively supported by obs the
v4l2 userspace library is required. This patch adds a cmake
script to find the library.
Replace all system calls with there counterpart in libv4l2.

By using the wrapper functions supplied by libv4l2 we gain
support for formats not natively supported by obs.
The library intercepts certain system calls to transparently
enable recoding.
Display emulated formats as such in v4l2 plugin.

Formats that are emulated by v4l2 are marked by appending
"(Emulated)" to them.
Fix handling of multiplanar pixelformats in v4l2 plugin.

The data provided by v4l2 for multiplanar formats is one
consecutive block that just needs to be splitted for obs.
Add function to prepare frame structure to v4l2 plugin.

This adds a function to prepare the source_frame struct for use
with obs_source_output_video. Since all of the values except for
the timestamp and data pointers are known in before it makes
little sense to compute them over and over again.

Due to the fact that v4l2 uses a single continuous memory segment
for multi planar formats we can also precompute memory offsets for
the planes.
Reorganized data struct and update function for v4l2 plugin.

Due to the plugin creating a thread to retrieve and output the
captured image data, care must taken to not modify data the
thread reads from the outside while the thread is running.

In previous revisions some settings accessed by the capture
thread were written to in the update function which could cause
image corruption and in the worst case crashes.

The members of the data struct are now split into two groups,
those that are used by the thread while it is running and must
not be changed from the outside, and those can be changed at any
time.
Remove the getwidth/getheight functions from v4l2 plugin.

Those functions are actually causing more problems than
helping out with the preview because the width/height is
updated immediately while the actual size of the frames
displayed changes later.
Improved Documentation and Logging for update in v4l2 plugin.

This adds some documentation to the update function and also
improves the logging by adding some info and bumping errors
to LOG_ERROR.
Add const keyword to fixed lists in v4l2 plugin.

This should save a little bit of memory memory.