Seperated Agent and TestController logic

Splitting the SignalR/TestController logic from the Agent to prepare for creation of a command line mode version without duplicating all of the agent logic.
@davidfowl @abnanda1 
nit: workerId