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.
I don't like this code, and it's not working correctly. In some cases, it expands an incorrect number of zeroes.

Basically, there are 3 cases:

1) ::1. Expand 7 zeroes (8 - 1) at the beginning.
2) 1::. Expand 7 zeroes (8 - 1) at the end.
3) 1::1. Expand 6 zeroes (8 - 2) in the middle.
4) 1:F:F::F:F:1. Expand 2 zeroes (8 - 6) in the middle. (same as case 3) )

So a 'nil' should be expanded to #nfragments - #semicolons, except for the 1) and 2) where expands to #nfragments - #semicolons. The point is that at this point I cannot expand when I find a 'nil' value, because I don't know yet the number of fragments. So I'm thinking to count the semicolons with a regexp before. Also check if the expression starts or ends with '::'.