Add hermetic Clang toolchain based on Skia's

This moves things around to align them with how Skia has
organized them.

I tested these locally from a Linux host with:
    bazel build //...
    bazel test //...
    bazel build //... --config=asan
    bazel build //... --config=msan
    bazel build //... --config=android-arm
    bazel build //... --config=android-arm-rbe
    bazel build //... --config=android-arm64
    bazel build //... --config=android-arm64-rbe

Windows bazelisk asset added in

Suggested Review order:
 - .bazelrc and toolchain/BUILD.bazel to see change to Platforms
 - toolchain/download_clang_linux_amd64.bzl, which was mostly
   copied from Skia
 - toolchain/clang_linux_amd64_toolchain_config.bzl which
   was mostly copied from Skia.
 - toolchain/download_ndk_linux_amd64.bzl which was renamed
   and re-worked to emphasize that the ndk can only run
   on execution platforms that are 64 bit Linux.
 - bazel/, which appeared unnecessary
   given that skcms does not push docker images.
 - infra/ to see the change to use bazelisk (so we
   can make use of 5.3.0+ to make the Linux toolchain).
 - All other changes

Change-Id: Icc87b999c0727f5d3511981d74d45415a0ba4261
Reviewed-by: Leandro Lovisolo <>
Commit-Queue: Kevin Lubick <>
77 files changed