Open
Description
Currently, whenever a file is saved or deleted, the whole workspace gets revalidated. This is necessary because, for example, deleting a schema could mean that you break a schema that references that schema. However, for a large project, this could be inefficient. Ideally, we should be able to only revalidate schemas that could be affected by the change.
Beware of cyclic references that could cause an infinite loop of revalidations.
Depends on #7