dataplane: copy buffer returned by pypcap

Reviewer: @wilmo119

When reading packets pypcap always returns a pointer to the same statically 
allocated memory, which will be overwritten the next time a packet is read. I 
believe this is a bug in pypcap. The workaround is to make a copy immediately.