Use an exclusive lock while dumping captured packets. (thread safety)
Respect the snapshot length of the descriptor.

Sending and receiving packets is done in separate threads, so
multiple packets can be dumped at the same time.
This can lead to another frame being dumped between the pcap frame
header and the packet data, corrupting the capture file.
Wireshark will read garbage data as the next pcap frame header,
almost always leading to the error "Frame is Too Long".

Now we're producing correct capture files.

Fixes issue #41 - "Frame is Too Long" error in Wireshark