Implemented getOccurrences for for/for-in/while/do-while loops and their breaks/continues.

This includes labelled break/continue.
Changed logic for break/continue search in switch statements and loops.

Now if a labeled break in a switch refers to its original switch statement, we also highlight the 'switch' keyword.

Also added tests for loop/break/continue.
Merge pull request #639 from Microsoft/getOccurrencesConstructor

Implemented getOccurrences for 'constructor' keywords.
Extracted 'break'/'continue' aggregation into common helper function.

Also addressed other CR feedback. Still need tests.
Make getCurrentDirectory and getDefaultLibFilename invocation in management side
Add old test files that use getEmitOutput
Add getEmitOutput and update call to getCurrentDirectory
Update fourslash for getEmitOutput
Add getEmitOutput test files
Minor spelling and spacing fix
Expose function shouldEmitToOwnFile to be called in services.ts
Remove enableSingleOutputFile boolean and use singleOutputFilename to check if singleOutputFile is specified
Add check if the compilationSetting object hasOwnProperty before add the property to TypeScriptLS object
Change getCurrentDirectory and getDefaultLibname from passing around
function to its final value
Move checking semantic diagnostics into emitFiles function rather than
getEmitOutput
Add meta-data flag name to modify compilationSettings
Fix spelling
Update getEmitOutput test files to use new meta-data flag
Fix spelling
Chage test framework from manual comparing the result to using baseline;
Add compilerOptions into fourslash