Split Type.java out of lib/packages: it is small, self-contained, and used in many places.

PiperOrigin-RevId: 303758722
diff --git a/src/main/java/com/google/devtools/build/lib/packages/BUILD b/src/main/java/com/google/devtools/build/lib/packages/BUILD
index b92124a..cf71fed 100644
--- a/src/main/java/com/google/devtools/build/lib/packages/BUILD
+++ b/src/main/java/com/google/devtools/build/lib/packages/BUILD
@@ -17,9 +17,15 @@
         exclude = [
             "BuilderFactoryForTesting.java",
             "StarlarkSemanticsOptions.java",
+            "Type.java",
         ],
     ),
+    # TODO(katre): Remove this when all packages that depend on :type are updated.
+    exports = [
+        ":type",
+    ],
     deps = [
+        ":type",
         "//src/main/java/com/google/devtools/build/lib:config-matching-provider",
         "//src/main/java/com/google/devtools/build/lib:config-transitions",
         "//src/main/java/com/google/devtools/build/lib:events",
@@ -79,3 +85,20 @@
         "//third_party:guava",
     ],
 )
+
+java_library(
+    name = "type",
+    srcs = [
+        "Type.java",
+    ],
+    deps = [
+        "//src/main/java/com/google/devtools/build/lib:logging-util",
+        "//src/main/java/com/google/devtools/build/lib:string_util",
+        "//src/main/java/com/google/devtools/build/lib/cmdline",
+        "//src/main/java/com/google/devtools/build/lib/collect/nestedset",
+        "//src/main/java/com/google/devtools/build/lib/skyframe/serialization/autocodec",
+        "//src/main/java/com/google/devtools/build/lib/syntax:evaluator",
+        "//third_party:guava",
+        "//third_party:jsr305",
+    ],
+)