Add 3 pending tests for transitive deps of macros

These three scripted tests verify that all the clients of a macro should
be recompiled whenever any of its transitive dependencies is modified.

The first tests makes this verification when an internal dependency of
the macro provider is modified.

In the second test, the macro provider has an internal dependency A. An
external dependency B of A is modified.

Finally, in the third test, the macro provider has an external
dependency A. An internal dependency B of A is modified.

Even if these three tests look very similar, only the first two can
easily be fixed. The reason for this is that sbt only propagates
API changes to dependent subprojects.
Invalidate macros whose internal deps are changed

Whenever any transitive dependency of a macro provider is changed, then
all macro clients should be recompiled.

This commit introduces a new kind of dependency
(`DependencyFromMacroImpl`)  along with the
(approximate) extraction logic for it.

The invalidation logic has been adapted so that is a file on which a
macro provider depends, then the macro provider is recompiled.

Marks the scripted test `source-dependencies/macro-graph-simple` has
passing.