fix: reject high-S ECDSA signatures in verification
AT Protocol requires low-S normalization (BIP-62 style). Signatures
where S > curve_order/2 are now rejected for both secp256k1 and P-256.
Without this, malleable signatures would verify successfully. The
verify functions are now pub for direct use outside JWT context.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>