This patch implements running linting on llvm-libc using build rule targets.
- adds a new target per entrypoint for linting with the naming convention <qualified_target_name>.__lint__ e.g libc.src.string.strlen.__lint__.
- makes the build target for each entrypoint depend on the linting targets so that they run along with compilation of each entrypoint.
- adds a lint all target named lint-libc. check-libc now depends on this new target.
- linting creates a lot of additional targets from clang and clang-tidy that need to be built so an opt out flag can be passed to cmake: LLVM_LIBC_ENABLE_LINTING.
This is quite the dependency. Would it be possible to only require it be built if the installed clang-tidy doesn't have llvmlibc-*.