Make logger IDisposable

Change controller signature to take instance of logger. Singelton logger
had potential to revive logger after controller was shutdown.
Log goodbye without raising notification.
Only call shutdown once from view.

Unregister handlers when the window closes.
Revert "Only call shutdown once from view."

This reverts commit d3c45f7a23cd92cfd7716825d885d334c05742ae.