m/node: add /dev/tty0 and /dev/ttyS0 to erofs

... alongside a few other 'critical' /dev chardevs.

This is in preparation for making minit log into /dev/tty0 and
/dev/ttyS0, as currently it does not log at all (broken by
review.monogon.dev/517).

While we're at it, we chip away at the move-everything-to-fsspec
refactor, and unify initramfs/erofs /dev structure into a dedicated
fsspec file, plus move directories from extra_dirs into its own fsspec
file as well. Fsspec targets can now take files in the fsspecs
attribute, which we point at the newly created files.

Alternatively we could've made a 'fsspec_bundle' rule that would
generate an fsspec provider from a definition (either as native starlark
types or a prototext). We'll have to do something like this later so
that we can get rid of the files attribute in erofs_image, but let's not
make this change too large.

Since we've cleaned up some starlark attribute usage, we then pull on
that thread to remove some now unused code, like the builtin_fsspec
functionality for fsspec-based rules, and the extra_dirs attribute.

Change-Id: I0df6c60df20e38abfc9632d0a701d547292f3697
Reviewed-on: https://review.monogon.dev/c/monogon/+/650
Reviewed-by: Lorenz Brun <lorenz@monogon.tech>
diff --git a/metropolis/node/BUILD.bazel b/metropolis/node/BUILD.bazel
index d97cb60..a193c31 100644
--- a/metropolis/node/BUILD.bazel
+++ b/metropolis/node/BUILD.bazel
@@ -41,18 +41,6 @@
 
 erofs_image(
     name = "rootfs",
-    extra_dirs = [
-        "/kubernetes/conf/flexvolume-plugins",
-        "/containerd/plugins",
-        "/sys",
-        "/proc",
-        "/dev",
-        "/esp",
-        "/tmp",
-        "/run",
-        "/ephemeral",
-        "/data",
-    ],
     files = {
         "//metropolis/node/core": "/core",
 
@@ -103,7 +91,11 @@
         "@xfsprogs//:mkfs": "/bin/mkfs.xfs",
         "@chrony//:chrony": "/time/chrony",
     },
-    fsspecs = [":firmware"],
+    fsspecs = [
+        ":erofs-layout.fsspec",
+        "//metropolis/node/build:earlydev.fsspec",
+        ":firmware",
+    ],
     symlinks = {
         "/ephemeral/machine-id": "/etc/machine-id",
         "/ephemeral/hosts": "/etc/hosts",