Use SO_SELECT_ERR_QUEUE when available.

The current implementation fetches a transmit time stamp by polling on the
socket with pollfd.events set to zero, and then checking if POLLERR has
been returned by the kernel in pollfd.revents. This has the unfortunate
side effect of sleeping in poll() for the entire time out duration,
regardless of when the error queue becomes readable.

Linux kernel version 3.10 introduced a new socket option that allows
polling for transmit time stamps explicitly, waking the process as soon as
a time stamp becomes available. This patch enables the socket option,
falling back to the old behavior if necessary.

Suggested-by: Joe Schaack <jschaack@xes-inc.com>
Signed-off-by: Richard Cochran <richardcochran@gmail.com>
Coding style: add missing break statement from a switch/case construct.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
trivial: do not assign a FP constant to an integer.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
trivial: update gitignore with the timemaster build product.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>
config: remove useless parameter.

The 'cfg' passed to parse_port_setting() is never used, so just remove it.

Signed-off-by: Richard Cochran <richardcochran@gmail.com>