Implemented a graceful disconnect and did some UI clean up

@davidfowl @mikary @abnanda1 
I'm talking about the stop case as well. Each agent changes its ApplyingLoad state when it finishes disconnecting. Multiple agents are more than likely going to finish disconnecting at different times.