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...