Byte-swap the T and L in TLVs as necessary when reading an NFLOG file.

That means that, when reading a LINKTYPE_NFLOG file, the type and length
values are in the byte order of the host *reading* the file, rather than
the host that *wrote* the file, just as they're in the byte order of the
host capturing the traffic if you're doing a live capture of NFLOG
messages.

That way, when reading a LINKTYPE_NFLOG file and writing another one
from those packets, the type and length in the output file will be in
the byte order of the host writing the file, rather than the byte order
of the host that wrote the input file.

Export the nflog.h file containing the declarations and definitions we
need, for use by tcpdump and other programs reading LINKTYPE_NFLOG
files.

Put the bulk of the byte-swapping code into a common routine, for use by
pcap and pcap-ng readers, while we're at it.
Have nflog_tlv_t include only the TLV header.

That way, sizeof(nflog_tlv_t) is the minimum size of a TLV.
Check caplen in the NFLOG TLV loop.

We want to process only the TLVs that are actually in the packet data,
so caplen is the right variable to use.

Also, just to make sure, check for a too-short TLV (with a length less
than the length of the TLV header), which also checks for a zero-length
TLV (which would otherwise cause an infinite loop), and put caplen and
length on the left-hand side of comparisons.
Describe all NFLOG TLV types and define structures for some of them.