Generalize the dependency tracking mechanism used by ContextManager.
Generalize the dependency tracking mechanism used by ContextManager.

Previously, we tracked "pub list" dependencies using
ContextInfo.packageMapInfo.dependencies, but that mechanism could only
be used for folders that resolved packages using "pub list".  Other
dependencies were tracked ad hoc (such as dependencies on ".packages",
or anti-dependencies* on "pubspec.yaml"); others weren't tracked at
all (such as dependencies on ".analysis_options").

(*In this context, an "anti-dependency" is a dependency on the fact
that a file is absent.  E.g. when we decide not to create a separate
context for a subfolder, it is in part because that subfolder lacks
its own "pubspec.yaml" file.)

This CL migrates the "pub list" dependencies to a more general
mechanism; future CL's will migrate the other ad hoc dependencies to
use the same mechanism.

R=brianwilkerson@google.com

Review URL: https://codereview.chromium.org//1258723002 .

dart-lang/sdk,dartino/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dartino/dart-sdk,dartino/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-archive/dart-sdk,dart-archive/dart-sdk,dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dart-lang/sdk,dart-lang/sdk,dartino/dart-sdk,dart-archive/dart-sdk