* Create folders for sys.writeFile
* Use project root path for emit output file name
* Normalize project file path for external projects
* Patch writeFile for all sys implementations
* Use the original file for single inferred project case
* recursive create directory for all sys implementations
* Add API to get only the emited declarations output
* Add nonModuleBuilder
* Add basic tests for CompileOnSaveAffectedFileList API
* Add API for compile single file
* Avoid invoking project.languageService directly
* Add API to query if compileOnSave is enabled for a project
* Seperate check and emit signatures
* Use Path type for internal file name matching and simplifying builder logic
* Always return cascaded affected list
* Correct the tsconfig file in compileOnSave tests
Also move the CompileOnSave option out of compilerOptions
* Reduce string to path conversion