metropolis/node: move misplaced packages out of core

abloader, bios_bootcode and minit don't run as part of the core process,
so it doesn't make sense to have them in //metropolis/node/core.
This changes moves these three to //metropolis/node.

Change-Id: I908efb311a138f07a9f1de8e3c23437ff00131ee
Reviewed-on: https://review.monogon.dev/c/monogon/+/4196
Reviewed-by: Tim Windelschmidt <tim@monogon.tech>
Tested-by: Jenkins CI
diff --git a/metropolis/node/abloader/BUILD.bazel b/metropolis/node/abloader/BUILD.bazel
new file mode 100644
index 0000000..20f26db
--- /dev/null
+++ b/metropolis/node/abloader/BUILD.bazel
@@ -0,0 +1,32 @@
+load("@rules_rust//rust:defs.bzl", "rust_binary")
+load("//osbase/build:def.bzl", "ignore_unused_configuration_target")
+
+rust_binary(
+    name = "abloader_bin",
+    srcs = ["main.rs"],
+    edition = "2021",
+    platform = select({
+        "@platforms//cpu:x86_64": "//build/platforms:uefi_x86_64",
+        "@platforms//cpu:aarch64": "//build/platforms:uefi_aarch64",
+    }),
+    # rust_binary depends on the status files by default, even if no stamp
+    # variables are used, which causes unnecessary rebuilds when the stable
+    # status file changes.
+    stamp = 0,
+    target_compatible_with = [
+        "@platforms//os:uefi",
+    ],
+    visibility = ["//visibility:private"],
+    deps = [
+        "//metropolis/node/abloader/spec:abloader_proto_rs",
+        "@crate_index_efi//:prost",
+        "@crate_index_efi//:uefi",
+        "@crate_index_efi//:uefi-services",
+    ],
+)
+
+ignore_unused_configuration_target(
+    name = "abloader",
+    dep = ":abloader_bin",
+    visibility = ["//visibility:public"],
+)