add colorization profiling

change the way unused declarations are found
revert find unused declarations algorithm

SyntaxConstructClassifier returns file-based colorization first, then project-based
extract finding unused declaration logic out from GetAllUsesOfAllSymbolsInFile to GetUnusedDeclarations
SyntaxConstructClassifier keep Unused spans alive until new ones are ready in order to prevent blinking unused symbols/opens
fix a test
remove commented code
Merge remote-tracking branch 'fsprojects/master' into profiling-colorization

Conflicts:
	src/FSharpVSPowerTools.Logic/SyntaxConstructClassifier.fs
refactor Profiler class
switching unused symbols highlighting to ProjectChecked event handler (WIP)
wip
almost works
wip
fixed: spans are not updated in FastState
fix a test
SyntaxConstructClassifier starts background compilation only after the previous one is finished
move checking for Unused Opens to the SlowStage

cancel previously running SlowStage before launch a new one
fix a test
Slow Stage works on scripts
fixed: false is always passed as checkForUnusedOpens to parameterLanguageService.GetAllUsesOfAllSymbolsInFile()

SlowStage also calls GetAllUsesOfAllSymbolsInFile()
SyntaxConstructClassifier unsubscribes from ProjectChecked even in its Dispose method