Use Python's ipaddress module to support IP networks in allow lists. Individual IP addresses are converted to /32 (IPv4) or /128 (IPv6) networks. CIDR notation (e.g., 192.168.0.0/16) is now supported. Fixes #1485 Closes #2390