Make timestamps precision configurable

Two new functions are introduced, pcap_set_tstamp_precision() and
pcap_get_tstamp_precision(). Those functions allow one to specify
desired timestamps precision for captured packets. By default
application will obtain timestamps in microseconds.
fad-null: rename pcap_findalldevs() to pcap_findalldevs_interfaces()

This file is used on Debian GNU/Hurd where libpcap is expected to build,
even though it doesn't have the ability to do live captures.
Introduce pcap_open_offline_nsectime and pcap_open_dead_nsectime
Add a LINKTYPE_ value for DLT_WIRESHARK_UPPER_PDU.

They have the same numerical value, as with all newly-added link-layer
header types.
Clarify that LINKTYPE_WIRESHARK_UPPER_PDU uses LINKTYPE_ values.

In most cases, DLT_ values and LINKTYPE_ values are the same, but, in
some cases, DLT_ values are platform-dependent, but LINKTYPE_ values
aren't, so that a savefile can be read on platforms other than the one
on which it was created.
Merge branch 'timestamps' of https://github.com/msekletar/libpcap

It says "Please enter a commit message to explain why this merge is
necessary".  I guess this merge is necessary because Git says it's
necessary.  Mysterious are the ways of Git.
Regenerated for time stamp precision changes to configure.in.
Replace the _nsectime routines with _with_tstamp_precision routines.

For opening savefiles, instead of having separate open_offline and
open_offline_nsectime routines, have open_offline_with_tstamp_precision
routies that take an additional PCAP_TSTAMP_PRECISION_xxx argument, and
make the open_offline routines wrappers around them requesting
microsecond precision.

Also, the timestamp precisions are a separate "namespace" from the
timestamp types, so give them their own numerical value set, starting at
0 for microsecond precision.

For pcap files, figure out up front whether we pass the time stamps
through, scale them up, or scale them down, and save that with the
private data and just use it when reading the capture file; that's less
work than determining that for every packet.
Document the new open_offline_with_tstamp_precision routines.
Fix handling of time stamps in pcap-ng files.

There's the time stamp resolution for a particular interface in a file,
and there's the time stamp resolution the user asked for; the former is
what it is, regardless of the time stamp resolution the user asked for.

Add support for multiple interfaces with different time stamps while
we're at it.
Have pcap_open_dead_with_tstamp_precision().

As with the open_offline routines, so with pcap_open_dead(); instead of
a nanosecond-resolution version, have a
pcap_open_dead_with_tstamp_precision() routine that takes a
PCAP_TSTAMP_PRECISION_ value, and make pcap_open_dead() a wrapper that
requests microsecond resolution.

Declare it in pcap/pcap.h while we're at it.
Document pcap_open_dead_with_tstamp_precision().
Rewrite the bit about pcap_next()/pcap_next_ex() a bit.

Describe the callback-based APIs, pcap_next(), and pcap_next_ex() in
separate paragraphs, rather than mixing them up.
Update the last modification date of some pages.
Remove Linux-specific time stamp precision stuff from pcap.c.

Do time stamp precisions the way we do time stamp types - if a module
supports more than one time stamp precision, have it attach a table of
time stamp precisions to the pcap_t, and have the code to set the time
stamp check that list.

Check for the two #ifdefs in pcap-linux.c to see whether it supports
nanosecond time stamps - and don't use the ioctl or the socket option
for those #ifdefs if they're not defined.

This means we don't need to check for it in the configure script.

Also, have both the time stamp type-setting and precision-setting
routines allow the default value (PCAP_TSTAMP_NONE/PCAP_TSTAMP_PRECISION_MICRO)
if no list is supplied.

Make "can't set the precision" an error; not being able to set the time
stamp *type* doesn't mean your code won't work at all, it just means the
time stamps won't be as accurate as you'd like, but not being able to
set the time stamp *precision* means you'll be getting
seconds/microseconds, and your code may have to cope with that.