Trace-server: Fix bottom up, and reduce allocations in turbopack-trace-server bottom-up grouping (#93460)
### What?
Speeds up the bottom-up grouping pass in `turbopack-trace-server` by
removing per-span `RcStr` allocations and fixes the hash map using the
correct hasher for the grouping `HashMap`.
### Why?
When loading large traces, building the bottom-up graph spent measurable
time (1) allocating fresh `RcStr` values from `&str` keys for every span
just to use them as `HashMap` keys, and (2) hashing those keys with the
default randomized hasher. Both are avoidable: the underlying spans
already own `RcStr`s, and the `StringTupleRef` equivalence-based lookup
needs `FxHasher` anyway because `RcStr`'s `Hash` impl only matches
`&str`'s `Hash` under `FxHasher`.
### How?
- Change `nice_name`/`group_name`/`args` accessors on `SpanRef` and
friends to return `&RcStr` instead of `&str`. The bottom-up grouping
code can now clone the existing `RcStr` (a cheap ref-count bump) instead
of allocating a new one from a `&str`.
- Switch the `(RcStr, RcStr) -> SpanBottomUpBuilder` map in
`bottom_up.rs` to use `FxBuildHasher`. This is required for the
`StringTupleRef` equivalence lookup to produce matching hashes for the
owned `(RcStr, RcStr)` keys, and it also removes the overhead of the
default randomized hasher.
- Update the `string_tuple_ref` test to use `FxBuildHasher` accordingly.
No behavior changes; this is a pure refactor for performance inside the
trace viewer tool.
<!-- NEXT_JS_LLM_PR -->