Add ICMP support

ICMP layer can be created with either:

 - icmp{type=<num>[,code=<num>,...] creates an ICMP header with the
   specified type and code (if not specified is 0). Other arguments
   are also available for additional fields. For type 8 (Echo Request),
   seqno and id can also be used.
 - ICMPEchoReq(id,seq) that is similar to icmp{type=8,id=id,seqno=seq}
 - ICMPEchoRep(id,seq) that is similar to icmp{type=0,id=id,seqno=seq}
 - ICMPTimeExceeded that is similar to icmp{type=11}
 - ... (see source code :-)

Some example usage:
 - To generate an ICMP time-exceeded message:
  # tracebox -p 'IP/ICMPTimeExceeded/ip{src="<someip>",dst="<someip>"}/TCP' <dest>
- To generate an ICMP Echo Reply (Ping)
  # tracebox -p 'IP/ICMPEchoReq(1,2)' <dest>

Signed-off-by: Gregory Detal <gregory.detal@uclouvain.be>