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 
yeah, he has mentioned that in the PR comment.."Part one of four to refactor the Worker to Agent connection"