Expand 'host <host>'

   - Add support for parsing: "[ip|arp|rarp] [src|dst] host <host>".
   - Add lowering for "[ip|arp|rarp] [src|dst] host <host>".
   - For the moment only support <host> IPv4 addresses.
Assume qualifier host after [src|dst] if omitted

The BPF syntax document says:

    type

        qualifiers say what kind of thing the id name or number refers to.
        Possible types are host, net , port and portrange. E.g., `host foo',
        `net 128.3', `port 20', `portrange 6000-6008'. If there is no type
        qualifier, host is assumed.
Fix ehost parsing

The regex that checks if an address is an IPv6 address matched MAC
addresses, as only the first two octets where being checked. As only full
IPv6 address are supported for now, I made the regex more restrictive,
so now it doesn't match MAC addresses.

MAC addresses can have the second octet of a segment missing, that means
this is a valid MAC address:

f:f:f:3:3:3

Which is the equivalent to f0:f0:f0:30:30:30. I modify the lexer to match
those addresses too.
Add expansion of 'ether [src|dst] [host] <ehost>'