Rewrite host masking with IPv6 support and hex hashes
Replaces the old decimal-digit masking with a cleaner hex-based hash
that handles IPv6, IPv4, and hostnames consistently:
- IPv6: SereneAB12CD.2601:540:ce00 (preserves /48 prefix)
- IPv4: SereneAB12CD.192.168.1 (preserves /24 prefix)
- Hostname: SereneAB12CD.example.com (preserves domain)
The mask prefix is configurable via mask_prefix in the network{} block.
Also adds mask_suffix config key (reserved for future use).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>