Extended InputRunner to automatically load decoder, and to expose

a Deliver method that supports synchronous or async (i.e. channel
based ) delivery to decoder or direct injection to router. Also added
support for tagging and injecting messages that fail to decode.
I'm open to revisiting this if we do decide it's worth it, but I don't think it should be a part of this PR.