[bazel] Update Clang (and IWYU) to 15.0.1 using CIPD

Suggested review order:
 - toolchain/download_linux_amd64_toolchain.bzl to see how we
   download the CIPD package that was uploaded to our GCS mirror
   instead of the GitHub or Debian packages used otherwise.
 - toolchain/linux_trampolines/clang_trampoline_linux.sh to
   see that IWYU now doesn't return an error code if all the
   compilation checks out, so we had to add --error to specify
   the return code we wanted on an IWYU violation (3, chosen
   arbitrarily).
 - Rest of toolchain/ to see changes necessary for new file
   names and locations.
 - All the rest of the .cpp and .h files which were what the
   new IWYU said they should be (e.g. changes to enum classes).
   We intentionally had SkSpan export <type_traits> because
   IWYU doesn't handle the std::remove_pointer_t in the template
   cleanly.

Change-Id: I5179bd78a9683d98e46d649284c154db4d3c7d13
Bug: skia:12541
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/594807
Owners-Override: Kevin Lubick <[email protected]>
Reviewed-by: Ben Wagner <[email protected]>
diff --git a/tests/WrappedSurfaceCopyOnWriteTest.cpp b/tests/WrappedSurfaceCopyOnWriteTest.cpp
index f7b39d0..99629bd 100644
--- a/tests/WrappedSurfaceCopyOnWriteTest.cpp
+++ b/tests/WrappedSurfaceCopyOnWriteTest.cpp
@@ -15,6 +15,7 @@
 #include "include/core/SkImageInfo.h"
 #include "include/core/SkRect.h"
 #include "include/core/SkRefCnt.h"
+#include "include/core/SkSamplingOptions.h"
 #include "include/core/SkSurface.h"
 #include "include/core/SkSurfaceCharacterization.h"
 #include "include/core/SkTypes.h"