IO API refactoring

@nealstewart 

Make the standalone-versus-plugin API conform to other types of thingies in Spiritual (broadcasts, actions, ticks etc) in preparation for Year of the Test.
How do the plugins relate to the input class?