Use TextBuffer in VirtualProjectProvider so that it works for dirty files

Fix #452.
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