test(identity-wallet): replace real Keychain with in-memory store in tests
Redirects all keychain.rs operations to a process-local HashMap under
#[cfg(test)] so that `cargo test -p identity-wallet` never touches the
macOS Keychain and never triggers a password prompt.
Production paths are unchanged; the security-framework import and all
three password functions are gated with #[cfg(not(test))].