fixes the double execution when generated files didn't exist yet (#3093)
There is a race condition between file writes and file reads. Because of
the low delay of our watcher, we sometimes see partial files written and
start updating the compilation based on that. This adds a queue per file
in the filesystem to avoid this kind of self caused partial reads.
It also fixes the bugfix which avoids to trigger a Completion when a
file write is a revalidation no-op, triggered by the read updating...
Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>