Main.java:
Addressing TODO: can we decrease code duplication between the
runReportViewer and updateReportViewer methods? [Freek]
Splitted common code in intuitive functions
normalizePreferredRootDirectory(),
setProgressLogReaderAndRunningMsrunName() and
startProgressLogFileMonitor(). 
Reorganized runReportViewer() and updateReportViewer(). 

ReportReader.java: 
Added few constant strings for logging messages.
Manually merged pull request from Freek: Main.java
Main:
- Corrected the Javadoc for the SIZE_REPORTS_KEYS constant and renamed it to SIZE_REPORTS_KEYS_MESSAGE.