ProjectFactory invalidates FCS before it removes ProjectProvider from its cache

It doesn't seem correct. We should call invalidate once project item changed. We shouldn't invalidate if a project is added or removed in the solution.