vaapi: rework the vaapi implementation

Move vaapi code into its own modules 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 highly experimentall vaapi encoder for hardware accelerated h264 encoding