Use TextBuffer in VirtualProjectProvider so that it works for dirty files

Fix #452.
Merge pull request #468 from dungpa/overhaul-language-service

Use TextBuffer in VirtualProjectProvider so that it works for dirty file...
Cache project options properly

Orphaned projects are only checked in Debug build
Remove unnecessary use of text search service

It may help reduce CPU pressure on large files
Merge pull request #469 from dungpa/optimize-highlight-references

Optimize highlight references
Fix getting symbol usage scope

Close #471.