packet: exclude some fields when comparing the packets
eth/ipv4/udp: fix length setting with payload
layers: add tcp test with raw payload
examples: add ICMP/UDP/TCP traceroute example

The TCP one doesn't quite work though. I *think* it's because we don't add TCP
extensions (like max segment) so most routers drop the packet.