ProgressLogFile.java:
Refactored setProgressLogFile into two parts: 
public boolean setProgressLogFile(...): @return true if logFile exists,
false if logFile doesn't exist. 
public void startProgressLogFileMonitor(): Create a timer and run the
timer thread as daemon to monitor progress log file.

ReportReader.java: 
Changed return type of retrieveReports(...) from List<ReportUnit> to
HashMap<String, ReportUnit>.
retrieveReports(...) now requires two more arguments: 
runningMsrunName to skip corresponding report (since pipeline is
processing RAW file with name runningMsrunName). 
reportUnitsKeys to skip creating reports already displayed in the
viewer.

Main.java: 
Removed processInitialReports() method.
Removed reportUnitsTable hashmap. 
Added reportUnitsKeys list to maintain list of reports being displayed. 
Log file is monitored only if it exists.
getReportUnits(...) now requires one more argument: runningMsrunName.
To continue working on Main.java. 

ReportUnit.java: 
Removed setReportNum(...) method. 

ViewerFrame.java: 
Added TODO to display report units according to their report number. 

ReportReaderTest.java: 
Updated unit tests.