vadecoder: Remove GstVaDecodePicture struct
Some duplicated codes are removed by using GstCodecPicture
struct, and GstCodecPicture will hold GstBuffer instead of
GstVaDecodePicture.
* Removing GstVaDecodePicture sturct usage:
Decoder does not need to allocate GArray per picture. Allocates
the GArray only once when decoder object is initialized.
* Unify decoding surface management:
vah265dec held surface GstBuffer in GstCodecPicture's user data,
while it's stored at GstVideoCodecFrame::output_buffer in the other
decode cases. In this patch, it's unified so that only GstCodecPicture
can hold the surface buffer.
* Change return types of some helper functions to GstFlowReturn