Dylibs that are "public" -- i.e. top-level system libraries -- are considered
implicitly linked when another library re-exports them. That is, we should load
them & bind directly to their symbols instead of via their re-exporting
umbrella library. This diff implements that behavior by default, as well as an
opt-out flag.
In theory, this is just a performance optimization, but in practice it seems
that it's needed for correctness.
Fixes llvm.org/PR48395.
nit: Because double negation is confusing, naming booleans always for the positive variant ("enableFoo" instead of "disableFoo" etc) tends to make for more readable code. Can we name this implictDylibs? It doesn't make a huge difference for readability in this case, but not having negated booleans is a good general guideline imho.