Implemented SingleInstanceMonitor

SingleInstanceMonitor checks whether only one instance is currently
running. If this is a second copy, it's just closed and message is sent
to the first instance.
LifecycleObserver reformat.
Changed name of Global event.
Added SingleInstanceMonitor release before app restart.
Small refactoring.
MainWindow BringToFront Logic change
SingleInstanceMonitor - logging added.
Reformat.
Merge pull request #2 from Zvirja/master

Merge latest changes.