vpu5: Properly enforce maximum number of VPU instances

Correct condition used to enforce the maximum number of simultaneous VPU
instances.
vpu5: Adjust default maximum number of simultaneos decodes

VPU decoder can handle up to 4 streams at the same time.  Update the default
maximum to reflect this.
vpu5: avc parse: split a PPS nal from other pictures

This change properly parses separates PPS nal units that appear in the
input stream into their own buffer.
Without this, the middleware can't normally decode the buffers following
the PPS data.
vpu5: decode: adjust the number of fmem buffers for the output 'zero-copy' optimization

In the current implementation, the fmem buffers filled by the decoder
can be exported as OMX output buffers without any memcpy()s.
For keeping efficient flow of buffers, more fmem buffers may be
necessary than ones the decoder needs.

Additionally, this adjustment could be activated only if OMX output
buffers have been allocated through AllocateBuffer(), not UseBuffer().
vpu5: decode: introduce a lock to prevent overwriting exported output buffers

The fmem buffers would be filled in rotation by the decoder.
On the other hand, a filled fmem buffer can be exported as an OMX
output buffer, read by down-stream modules such as renderer,
and then pushed back again through FillThisBuffer().
This introduces an exclusive lock for each fmem buffer to prevent
overwriting exported ones which are being referred by others.
Version 1.2.0