This is necessary for an incremental migration to `rules_js` which
requires Bazel v6. Bazel v6 removed the managed directories feature,
which means we no longer can rely on symlinked node modules as the Bazel
repository; but rather need to duplicate dependencies. This is
okay/acceptable to enable the incremental migration.
These updates have been combined as rules_pkg 0.7.1 requires support for non string labels which older versions of Bazel do not support which would cause the below failure
```
Error in select: select: got Label for dict key, want a label string
```
Uses the new shared RBE platform from the dev-infra package.
We introduced a shared Bazel platform for remote execution builds
using Google cloud. Previously we used `bazel_toolchains` for
providing the platform w/ additional CPP and Java toolchains
`bazel_toolchains` no longer provides default toolchains with the
latest version, but provides a tool (linux and windows only) for
generating toolchain/platforms, which then need to be checked
into the repository. This is quite inconvenient and cumbersome
(especially with no macOS support), so we just provided our own
platform and CPP toolchain within `@angular/dev-infra-private`. This is
more simple than all the effort we'd need to make the toolchain
generation tool work (while it would also increase the amount
of checked-in sources significantly; with more unused toolchains
for CPP or Java)
See: angular/angular#41767.