Implement lowering of 'host' and 'net' for IPv6

* tools/pflang-compile: Escaped tabs ('\t') are printed as raw text within a long string. Use non-escaped tabs instead.
* src/pf/parse.lua: Improve parsing of IPv6 addresses. Support not full IPv6 addresses (::1, 0::0, etc). Improve mask handling in IPv6 addresses.
* src/pf/expand.lua: Add lowering of 'host' and 'net' for IPv6 addresses. I'm not sure what's the equivalent of BPF 'jset' operation, see FIXME.
* src/pf/utils.lua: Add method for converting a 16-bit 8-groups IPv6 address into a 32-bit 4-groups address. Comparison of parts of an IPv6 address is done by fetching groups of 32bit.
Yes, but addr[1] is 'ipv6'. If #add is 9, it means the address is expressed as a full IPV6 address. I agree it is a bit misleading, I can rewrite as:

local MAX_PARTS = 8
if #addr == MAX_PARTS + 1 then return addr end
local result = { addr[1] }
for i=2, #addr do
...
end