Short-circuit identifier comparison with hash before string compare
Identifier.compare was using Stdlib.compare on ikey strings, which
dispatches through the generic compare_val C function. Replace with
hash comparison first (Int.compare on precomputed ihash), falling
back to String.compare only when hashes collide.
This eliminates most string comparisons in Map lookups since
identifiers with different hashes are immediately distinguished.
Callgrind showed compare_val at 12% self-time on indexed_container_intf.
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>