vaapiimage: rewrite

m_width/m_height/m_format duplicate with the ones in m_image, remove them
use simple fourcc for image format
vaapiimage: add video frame export type for vaapiimage

VIDEO_DATA_MEMORY_TYPE_RAW_POINTER:     pass data pointer to client
VIDEO_DATA_MEMORY_TYPE_RAW_COPY:        copy data to client provided buffer
VIDEO_DATA_MEMORY_TYPE_DRM_NAME:        export drm flink name
VIDEO_DATA_MEMORY_TYPE_DMA_BUF:         export dma_buf fd
vaapiimagepool: add it

add image pool, it help to support color format conversion or video resize
by vaGetImage (for decoded video frame) or vaPutImage (for video frame before encoding)

add the image pool to decode surface pool to support color conversion or resize.
interface: add API for video frame export and recycle

getOutput(VideoFrameRawData* frame, ..) to export one decoded frame
  Video frame export type and desired color format / resolution can be set.
renderDone(VideoFrameRawData* frame) to recycle one video frame after client rendering
test: add egl/gles2 test
tests: add more render mode for decode test
v4l2: codecbase and encoder update (for decoder implementation)

sendEOS (empty buffer) before input thread exit
event_pending is used to notify client some event to query
add EGL utils
add exported video frame memory type support
add recycleOutputBuffer
v4l2: add decode support
test2: add v4l2decode test