Auto merge of #171 - faern:bpf_loopback_fix, r=mrmonday
Auto merge of #171 - faern:bpf_loopback_fix, r=mrmonday

Handle headers on loopback devices on bsd/osx

The previous version prepended 4 bytes == AF_INET to datalink sends. On my computer this header is added automatically so it doesn't seem to be needed. I didn't find any documentation describing this and I only tested it on my OS X 10.11.3 laptop, so I can't guarantee it works for every macos/freebsd flavor.

The previous version also kept the ethernet header. I don't think these are supposed to be included on the loopback interface. This PR changes so when sending to loopback on the datalink layer we discard the header and simply send the payload.

During read the OS will only give us the payload (prepended by the 4 bytes AF_INET) but the API force us to return an `EthernetPacket`. This PR changes so that the 14 bytes before the payload is zeroed out and included in the returned value. Thus, all packets read from a loopback device will have zeroes in all ethernet header fields.

@mrmonday

fsck/libpnet,mrmonday/libpnet,libpnet/libpnet,fsck/libpnet,symphorien/libpnet,fsck/libpnet,libpnet/libpnet,symphorien/libpnet,mrmonday/libpnet,libpnet/libpnet,fsck/libpnet,mrmonday/libpnet,mrmonday/libpnet,symphorien/libpnet,libpnet/libpnet,symphorien/libpnet