Add in an IOFactory interface to handle getting Readers from various
resources

(without all the mess of how YamlConfiguration did it)

Signed-off-by: zml2008 <zach@zachsthings.com>