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 
The default namespace for the assembly would be "Microsoft.AspNet.SignalR.DCrank.Crank.Tests" but I removed the .Tests from that. If I left it as it was, we would either have resharper taking issue with namespaces like "Microsoft.AspNet.SignalR.DCrank.Something.Tests" or namespaces that require extra includes like "Microsoft.AspNet.SignalR.DCrank.Crank.Tests.Something"