bazel syntax: stop using concurrent.Immutable annotation

The @Immutable annotation specifies that it is for documentation only.
Historically lib.syntax has violated this contract by using the presence
of the annotation as an indication that values of the annotated class
should be considered immutable to Starlark (EvalUtils.isImmutable).

This change adds an explicit override of StarkarkValue.isImmutable to
every class annotated @Immutable. This is more verbose, but clearer
and less magical. In particular, it is obvious that isImmutable is
inherited, whereas I suspect few people memorized whether the
effect of @Immutable was inherited. (It was not.) It also means
there is one mechanism, not two, for expressing Starlark immutability.

(Longer term, I would like to merge isImmutable into isHashable, because
that is isImmutable's only purpose. But things are currently very
inconsistent: for example, you can't hash a list, even if frozen, but
you can hash a struct containing a frozen list, because the isHashable
recursive case checks immutability, not hashability.)

This change required a manual audit, combined with some throwaway static
and dynamic checks. It is possible that I have missed at least one place,
which will manifest as an unexpected "unhashable: foo" error.
I will keep an eye out for regressions. (I am sheriff this week.)

Also:
- Revert the hack added to Immutable that causes the annotations
  to be retained at run time.
- lib.syntax now uses the JSR305 Immutable annotation in the few
  places where it matters, so it no longer depends on lib.concurrent.

RELNOTES: N/A
PiperOrigin-RevId: 312085384
diff --git a/src/main/java/com/google/devtools/build/lib/analysis/BUILD b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
index ad2a017..2b14144 100644
--- a/src/main/java/com/google/devtools/build/lib/analysis/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/analysis/BUILD
@@ -1571,6 +1571,7 @@
     srcs = ["config/Fragment.java"],
     deps = [
         ":config/build_options",
+        "//src/main/java/com/google/devtools/build/lib/concurrent",
         "//src/main/java/com/google/devtools/build/lib/events",
         "//src/main/java/com/google/devtools/build/lib/syntax:evaluator",
         "//third_party:jsr305",