refactor packet_socket interface to take a callback function object (lambda) to deliver packets, rather than copying buffers. This enables 'zero copy' receiving of packets (especially with future netmap support)