Modified IFileMonitor and IArchive to use asynchronous methods.

I removed the IsReady property and IsReadyChanged events in favor of task-based asynchronous pattern.
Fixed occasional null pointer exception in MultithreadedAccessTests.
Modified test to sleep while waiting for currently executing tasks to complete.
Added a Thread.Sleep because the test fails on the Jenkins VM.