MultiDecoder improvements

Resolves #485. Resolves #896.
We're actually using it in SetDecoderRunner. I guess I could grab the names from the md.Config.Subs value, since they match the order of the decoders in md.Ordered, but it didn't seem worth it to me to remove this. I'll make that change if you feel it's worth it.