BlastBufferQueue: Call ProducerListener callbacks asynchronously

When the IGBP is running on the client process, the ProducerListener
callbacks will run synchronously and if the callbacks call into the BQ,
we can deadlock. This is because If the IGBP was running on the server,
the ProducerListener callbacks are via a one way binder calls that do
not block.

Fix this by wrapping up the listener and running the callbacks in a
different thread.

Bug: b/168917217

Test: atest android.media.cts.MediaSyncTest#testPlayVideo
Test: go/wm-smoke
Test: atest BLASTBufferQueueTest

Change-Id: Ib8f45a04c457a15c64a4a8c82b0eb053ae652b86
3 files changed