Changed DirectoryScanningMonitor.StopMonitoring() to execute only if ScanTimer.Enabled is true.
Changed DirectoryScanningMonitor.RemoveDirectory(string) to execute only when nothing else (primarily ScanTimer_Elapsed) is running. If StartMonitoring() has not been called (ScanTimer.Enabled is false) then RemoveDirectory simply executes.