This allows clang, lld, lldb, and other llvm tools to be linked against
these shared libraries, which makes them smaller and avoids duplication.
Since these are not quite the same as the shared libraries shipped by
the upstream llvm build system, and we do not want to expose the ABI to
external programs such as ports, make them private libraries.
Note that during the cross-tools stage they are still built as static
libraries, so the cross compiler and linker are static binaries, as they
have always been.
This also requires a depend-cleanup.sh kludge, to ensure binaries are
rebuilt against the shared libraries in case of incremental builds.
NOTE: Requires D49966 to be committed first.
MFC after: 2 weeks