shill: EapListener: New class for listening for EAP

Create an entity that listens for EAP traffic on a given interface
index.  It will invoke a callback method when an EAP request is
received.

BUG=chromium:225914
TEST=Unit tests + manual: Used core code base with real sockets and
a veth pair with hostapd running in wired mode on the other end.

Change-Id: If2e1c0100dc65875ef61d5747482cc1bae3cfd36
Reviewed-on: https://gerrit.chromium.org/gerrit/47212
Commit-Queue: Paul Stewart <pstew@chromium.org>
Tested-by: Paul Stewart <pstew@chromium.org>
Reviewed-by: Paul Stewart <pstew@chromium.org>
diff --git a/Makefile b/Makefile
index c0cb3c1..6bc5120 100644
--- a/Makefile
+++ b/Makefile
@@ -234,6 +234,7 @@
 	dhcpcd_proxy.o \
 	diagnostics_reporter.o \
 	dns_client.o \
+	eap_listener.o \
 	endpoint.o \
 	ephemeral_profile.o \
 	error.o \
@@ -349,6 +350,7 @@
 	dhcp_provider_unittest.o \
 	diagnostics_reporter_unittest.o \
 	dns_client_unittest.o \
+	eap_listener_unittest.o \
 	error_unittest.o \
 	ethernet_service_unittest.o \
 	file_reader_unittest.o \