va: allocator: Implement mem_copy for VA memory.
Implementation of mem_copy() virtual method for GstVaAllocator.
It's a deep copy where a new VA memory is popped out from the pool or, if pool is empty, a new memory is allocated. The original memory is mapped to read, and if its VAImage is not derived and size to copy is the whole surface, the mapped VAImage of the original memory is put in the new memory. Otherwise a slow memcpy is done between both memories.
Fixes: #1568 (closed)