Worker io refactor

Part one of four to refactor the Worker to Agent connection. This change adds an IRemoteWorker interface that is used on the Agent side for sending messages.
@davidfowl @abnanda1 @intern-felicco 
... of the test. Because you should be testing only one method at a time and you should be able to mock other dependencies.