fix(oauth-client): Phase 4 cycle 3 — address remaining code review issues
- R1 [Critical]: Updated discovery snapshot to reflect reorganized scope check order (ScopeIncludesAtproto before ScopeGrammarValid) per phase plan requirements.
- R2 [Important]: Replaced manual impl blocks on RawDocumentDeserializationError with #[derive(Diagnostic)]. Changed field name from `source` to `src` to avoid collision with thiserror's #[source] attribute auto-detection.
- R3 [Important]: Wired in RedirectSchemeReverseDomainMismatchDiagnostic code. Refactored validate_redirect_uris to return Result<(), RedirectValidationFailure> instead of bool, enabling structured failure detection. Native redirect URI scheme mismatches now emit the specific code oauth_client::metadata::redirect_scheme_reverse_domain_mismatch instead of generic redirect_uris_shape. Removed #[expect(dead_code)] from the diagnostic struct.
- R4 [Minor]: Reverted labeler_subscription snapshots (empty_stream_advisories.snap, unreachable_endpoint_network_error.snap) to base state with elapsed: 0ms. These are pre-existing timing flakes outside Phase 4 scope.
All oauth_client tests pass. Formatting and clippy clean.
Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>