Open the socket with SOCK_RAW instead of SOCK_DGRAM
Open the socket with SOCK_RAW instead of SOCK_DGRAM

With SOCK_RAW we supply the complete ethernet frame except for the
Frame Check Sum (FCS) and it seems to be working.

Add println_sockaddr_ll and I'm using println_hex to dump the full
socket that is sent and received, here is a run:
```
$ make run IFN=br0 IP=192.168.0.2
sudo ./test-af_packet br0 192.168.0.2
test-af_packet: argc=3
argv[0]=./test-af_packet
argv[1]=br0
argv[2]=192.168.0.2
fd=3
ifindex=4
mac_addr=38:2c:4a:6d:e2:08
ipv4_addr=192.168.0.90
send_ethernet_arp_ipv4:+fd=3 ifname=br0 ipv4=192.168.0.2
send_ethernet_arp_ipv4: ifname=br0 findex=4
send_ethernet_arp_ipv4: family=17 protocol=0x806 ifindex=4 hatype=0 pkttype=0 halen=6 addr=ff:ff:ff:ff:ff:ff
send_ethernet_arp_ipv4: req.arp_sha=38:2c:4a:6d:e2:08
send_ethernet_arp_ipv4: req.arp_spa=c0.a8.00.5a
send_ethernet_arp_ipv4: packet=ff ff ff ff ff ff 38 2c 4a 6d e2 08 08 06 00 01 08 00 06 04 00 01 38 2c 4a 6d e2 08 c0 a8 00 5a 00 00 00 00 00 00 c0 a8 00 02 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
send_ethernet_arp_ipv4: sent count=60
send_ethernet_arp_ipv4:-error=0
recvfrom: count=28 addrlen=18
recvfrom:  addr=11:00:08:06:02:00:00:00:01:00:00:06:e0:3f:49:f0:8a:44
recvfrom:  addr:family=17 protocol=0x806 ifindex=2 hatype=1 pkttype=0 halen=6 addr=e0:3f:49:f0:8a:44
recvfrom:  resp=38 2c 4a 6d e2 08 e0 3f 49 f0 8a 44 08 06 00 01 08 00 06 04 00 02 e0 3f 49 f0 8a 44
error=0
```

winksaville/test-af_packet,winksaville/test-af_packet