Rework the vaapi implementation
Add vaapi encoder
Add common api which enables sharing of surfaces and a common initialization