Merge pull request #342 from MichalLabedzki/master

Add support for Bluetooth Linux Monitor interface
Check for HCI_CHANNEL_MONITOR for Linux Bluetooth Monitor support.

Support the Linux Bluetooth Monitor mechanism if:

	we support Linux Bluetooth;

	struct sockaddr_hci includes an hci_channel field;

	HCI_CHANNEL_MONITOR is defined by the Bluetooth headers;

as there are some 3.x kernel versions in which struct sockaddr_hci
includes an hci_channel field but in which HCI_CHANNEL_MONITOR is not
defined.
Add a link-layer header type for the PROFIBUS data link layer.
Do userland filtering if we can't do kernel filtering.

If, for example, the filtering doesn't pass the kernel's filter
validator because it does backward branching, as would be the case if
"ip protochain" or "ip6 protochain" were used, we don't want to fail, we
want to fall back on filtering in userland.

Use some PCAP_ERROR_ values while we're at it, to match what pcap-bpf.c
does.
Work around annoying Android problem.

For various annoying reasons having to do with DHCP software, some
versions of Android give the mobile-phone-network interface an ARPHRD_
value of ARPHRD_ETHER, even though the packet supplied by that interface
have no link-layer header, and begin with an IP header, so that the
ARPHRD_ value should be ARPHRD_NONE.

Detect those devices by checking the device name, and use DLT_RAW for them.
Pick up fix from Android libpcap.

(Did anybody ever send this fix upstream to us?)
Add support for Apple's DLT_PKTAP.
Add more details to a comment.
fix compiling on Windows after commit dbdee51
Remove BlueZ dependence

Libpcap should not use BlueZ userspace headers, because it does not
use BlueZ at all. It used only Linux kernel, but it does not
provide userspace headers. For compatible reason we should use own copy
of headers and try to dynamically detect Linux kernel version and use
proper structures.