Lift the relay's private extract_single_auth_tag_json into buzz_sdk::nip_oa
so relay and desktop enforce identical auth-tag structure (exactly one auth
tag, exactly four elements). The relay's identity-archive consent path now
calls the shared helper; the duplicated private copy is removed.
Adds unit tests for the happy path, ignoring non-auth tags, missing tag,
multiple auth tags, and wrong-arity auth tag.
Co-authored-by: Taylor Ho <taylorkmho@gmail.com>
Signed-off-by: Taylor Ho <taylorkmho@gmail.com>