Bug 1104964 - Handle ShutdownPoolsEvent race. r=cpearce
Bug 1104964 - Make sure that MediaDecoderReader::Shutdown is always called. r=cpearce
Bug 1104964 - Split shutdown initiatation and queue-drain-waiting into separate pieces. r=cpearce

This patch shouldn't change any behavior. The upcoming patch takes advantage of
these separate pieces.
Bug 1104964 - Rename the task queue for hardware video decoding to something more obvious. r=cpearce

Otherwise it will shadow the mTaskQueue that we're about to introduce on
MediaDecoderReader.
Bug 1104964 - Make MediaDecoderReader own the task queue. r=cpearce