Ensure getEmitOutput only check the file requested

Fix for #1330:
- Remove checkProgram as it is not needed and mostly subsumed in checker.getDiagnostics
- Ensure that checkSourceFile is only called in checker.getDiagnostics
- Add SourceFile as an argument to hasSemanticErrors to avoid a full typeCheck
- Update EmitFiles to specify the sourceFile if present
- Cleanup LanguageService.getEmitOutput to remove duplicated logic 
- Added some additional tests