Complete rewrite of prepare_pcap

- Support for both sll and en10mb datalink with room to support other
- Cleaner support for parsing ipv4 and ipv6 packets (no upcast from v4
  structures to v6 strutures)
- Only support pcap_next_ex to avoid more ifdefs (the API has been
  available for around a decade now)
- Use glibc provided data structures everywhere
- Use the BSD field names everywhere to avoid ifdefs
- More const correctness