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.
Modified tests and added a test for labeled continues in a switch block.
Minor CR feedback addressed.
Simplified ownership code for continue/break statements.
Merge branch 'getOccurrences' into getOccurrencesLoopBreakContinue

Conflicts:
	src/services/services.ts
added optional 'sourceFile' argument to methods of Node to avoid unnecesary tree walk
initial revision of SmartIndenter (TODO: indentation in list items)
update test baselines
added handling for smart indentation in the beginning of list items, updated test baselines. TODO: smart indentation in the middle of list items (2 failing tests)
added support for smart indentation in the middle of list items, updated test baselines
added support for smart indentation in the middle of list items, updated test baselines
use actual indentation if possible
remove singleTokenIndenter.ts
minor code cleanup
when looking for a start node consider only nodes that can contribute to indentation
update JakeFile
Add support for syntactic classification.

Tests pending.