Features/multidecoder runner

MultiDecoders don't create a separate DecoderRunner for each sub-decoder. Until now, the MultiDecoder just ignored this fact, which would have caused problems for sub-decoders implementing the WantsDecoderRunner interface, expecting to have access to a runner.

This patch introduces an mDRunner that wraps around the MultiDecoder's runner that is suitable for being passed in to the sub-decoders that require it.