Reorganize socket creation

Allow for BSD, Linux, or PF_RING sockets. Currently only tested on
BSD-like systems (Mac)
Fix compile error on Linux in socket-linux.c

Include string.h and errno.h
PF_RING socket functions in socket-pfring.c

Move get_socket from send-pfring.h to socket-pfring.c
Fix compile errors with PF_RING
Start breaking recv up into OS-specific modules
Move static variable from header to implementation
Prettier include guards
Start implementing PF_RING recv
Link against PFRING when needed

Update CMake build scripts
Fix compile errors in recv-pfring.c
Start shrinking zmap.c

Move utility functions to lib/util.c
Move more things into util.c
Assign thread affinity correctly
Add PF_RING init code to zmap.c

Untested
Fix compile errors on Linux
Add PF_RING start code

Untested
Add distrib_func for PF_RING

Fix compile error
Correctly include send-pfring.h

Update prototype for send_packet
Match signatures of send_packet to use sock_t
Remove unlikely macro