#25 - split IRun to sycn/async, added file system abstraction

Split the sync/async into seperate interfaces and updated registry and references accordingly. Added a file system abstraction to eventually get the packagemanager tests back in and then seperate the source tests from the physical filesystem