Rework the vaapi implementation
Move vaapi code into its own modules subfolder.
Add common api which enables sharing of surfaces via a common
initialization, so only one VADisplay is ever created.
Add a highly experimental vaapi hardware encoder.