vpu5: Allow for reallocation of output buffers on Android

If a portSettingsChanged callback is made to Android from the component,
Android will try to reallocate the output buffers based on the
new buffer size.  This will happen while the component is still in the
Executing state by disabling the output buffer and reissuing the
UseBuffer commands.  Update the status check make sure that the DMAC setup
is reentrant.
vpu5: FreeVPU  work area on deinit
vpu5: deinit bellagio queues when no longer needed

Bellagio queues dynamically allocate memory in init_queue().  Make
sure that deinit_queue() is called for every corresponding init_queue().
Correct 2DDMAC width setting

When copying a CbCr plane using the 2DDMAC, the plane width value must
be set to 1/2 the size of the image to be copied.
vpu5: m4vdec: Properly handle very small buffers

Buffers between 4 and 7 bytes were not processed during parsing.
Since the m4vdec parser doesn't skip the first 3 bytes like the AVC parser,
processing the entire buffer (until nRemainingSize = 0)
is the correct thing to do.
vpu5: Specify minimum 256 byte pitch when using T/L conversion

The internal T/L conversion only seems to get enabled when the
buffer pitch is 256 or larger.  Forcefully set the output pitch
to 256 for smaller streams.
vpu5: Make sure to clear the fmem locks when the output buffers are flushed

Flushing the output buffers should reset their state completely.  Failing to
do this can cause decoding to be delayed until the buffer mutexes time out
after a buffer flush (usually caused by a video seek event).