[WIP] Drop runner API from visor.Runner

> NOTE: this is currently rebased onto #109 

Reduce scope of visor.Runner to registration, discovery, and unregistration. This moves the runner's API outside of visor.