vaapi: rework the vaapi implementation

Move vaapi code into its own subfolder.
Add common api which enables sharing of surfaces via a common
initialization function, so only one VADisplay is ever created and
shared accros all modules using vaapi.
Add some fourcc for a possible future full-vaapi pipeline, where the
image data never leaves the gpu.
Add accelerated copy function for single planes, so it's easier to copy
arbitrary formats.
vaapi: add experimental vaapi encoder for accelerated h264 encoding