feat(unstable): Geometry Interfaces Module Level 1 (#27527)
<!--
Before submitting a PR, please read
https://docs.deno.com/runtime/manual/references/contributing
1. Give the PR a descriptive title.
Examples of good title:
- fix(std/http): Fix race condition in server
- docs(console): Update docstrings
- feat(doc): Handle nested reexports
Examples of bad title:
- fix #7123
- update docs
- fix bugs
2. Ensure there is a related issue and it is referenced in the PR text.
3. Ensure there are tests that cover the changes.
4. Ensure `cargo test` passes.
5. Ensure `./tools/format.js` passes without changing files.
6. Ensure `./tools/lint.js` passes.
7. Open as a draft PR if your work is still in progress. The CI won't
run
all steps, but you can add '[ci]' to a commit message to force it to.
8. If you would like to run the benchmarks on the CI, add the 'ci-bench'
label.
-->
closes #21608
prev #22054
## blocked by
- [x] https://github.com/denoland/deno_core/pull/1024
- [x] https://github.com/denoland/deno_core/pull/1047
- [x] https://github.com/denoland/deno_core/issues/1127
- [x] https://github.com/denoland/deno_core/pull/1161
- [x] https://github.com/denoland/deno_core/pull/1187
- [x] https://github.com/denoland/deno_core/pull/1188
- [x] https://github.com/denoland/deno_core/pull/1208
## build size
main
```
% cargo build --locked --release --target-dir "target/$(git rev-parse --abbrev-ref HEAD)-$(git rev-parse --short HEAD)"
% ls -l target/main-574272ded/release/deno | awk '{print $5}'
140258176
```
this PR
```
% cargo build --locked --release --target-dir "target/$(git rev-parse --abbrev-ref HEAD)-$(git rev-parse --short HEAD)"
% ls -l target/feat/geometry2-8edb91919/release/deno | awk '{print $5}'
140850032
```
about 580KB larger
---------
Signed-off-by: Kenta Moriuchi <moriken@kimamass.com>