These times already contain max modified info of their
dependencies. Therefore we no longer have to check in
internal_erl_compile whether the file really needs
recompiling, which simplifies the flow somewhat, because
the work with dependency graph is now localized to much
smaller space then before.
When the source file changes it could happen that some of its
dependecies get removed. In that case we should remove these
former dependencies from the graph, so that they don't influence
recompilation of the source file anymore.
Current separation of part of the logic into include_path
obscures the purpose of Dirs (see expand_file_names).
Moreover for each particular Erl its source file was included
twice in Dirs, which is now corrected.
Also InclDirs (specified in erl_opts) as part of erlcinfo
since they can affect resulting graph, which needs to be
therefore regenerated when InclDirs change. See added
test as an example.