Convert kcsbridged to C++17, sdbusplus::asio, and new IPMI D-Bus API

This rewrites the C-style kcsbridged in modern C++, taking advantage of
the sdbusplus::asio bindings. This also converts the bridge to use the
new IPMI D-Bus API, which is method based instead of signal/method
based.

Tested-by: Using a parameterized unit file, launching via
           sytemctl start phosphor-ipmi-kcs@ipmi-kcs3
    verify from host:
           modprobe ipmi_si
           ipmitool mc info

Change-Id: I3a3e85a23fa7b76814848fcf270d25e4510bdd77
Signed-off-by: Vernon Mauery <vernon.mauery@linux.intel.com>
diff --git a/Makefile.am b/Makefile.am
index 751bb7e..4fa8796 100644
--- a/Makefile.am
+++ b/Makefile.am
@@ -1,5 +1,17 @@
 bin_PROGRAMS = kcsbridged
 
-kcsbridged_SOURCES = kcsbridged.c
-kcsbridged_LDFLAGS = $(SYSTEMD_LIBS)
-kcsbridged_CFLAGS = $(SYSTEMD_CFLAGS)
+kcsbridged_SOURCES = kcsbridged.cpp
+kcsbridged_LDFLAGS = \
+	$(SYSTEMD_LIBS) \
+	$(PHOSPHOR_LOGGING_LIBS)
+kcsbridged_CXXFLAGS = \
+	-flto \
+	-Wno-psabi \
+	$(SYSTEMD_CFLAGS) \
+	$(SDBUSPLUS_CFLAGS) \
+	$(PHOSPHOR_LOGGING_CFLAGS) \
+	-DBOOST_ERROR_CODE_HEADER_ONLY \
+	-DBOOST_SYSTEM_NO_DEPRECATED \
+	-DBOOST_COROUTINES_NO_DEPRECATION_WARNING \
+	-DBOOST_ASIO_DISABLE_THREADS \
+	-DBOOST_ALL_NO_LIB