Implemented a graceful disconnect and did some UI clean up

@davidfowl @mikary @abnanda1 
(Fix in a separate PR, though.)