fix: Remove scm unwrap usage (#12897)
## Why
`turborepo-scm` still needed a crate-level `.unwrap()` allowance for
object-id hex encoding paths. Removing it keeps SCM under the workspace
panic-hardening policy and prevents future implementation unwraps from
slipping through.
Closes TURBO-5643
## What
Propagates hex encoding failures through existing SCM/io error paths and
removes the crate-level `clippy::unwrap_used` allowance.
## How
- `cargo fmt -p turborepo-scm`
- `cargo test -p turborepo-scm`
- `cargo clippy -p turborepo-scm --all-targets -- -D warnings`
- Pre-push hook passed with format, check:toml, and Rust checks