pcap: Parse TCP header too.
Add a user argument to _connect and _receive functions

Usually used to store the device objects, this lets the receive
functions figure out which higher-layer receive function to call.

It'll also be useful to access other fields. The tpkt layer for example,
will need to handle partial packets, so it needs a place to store a
partial data (until it has enough data to supply to the higher layer).
This too will use the tpkt_dev_t object passed as user argument.