Convert libllvm, libclang and liblldb into private shared libraries
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 which will be added in a
follow-up commit, to ensure binaries are rebuilt against the shared
libraries in case of incremental builds.
MFC after: 2 weeks
Differential Revision: https://reviews.freebsd.org/D49967
(cherry picked from commit 2e47f35be5dc61945afdbd1a70e8fd505c032c94)