Only create buttons when their GPIOs are defined

Look in /etc/default/obmc/gpio/gpio_defs.json to see
if the GPIO for a button is defined, and only create
the button object if it is.

This is how a system implementer can specify which
button objects are needed for their particular system.

Change-Id: I359f87875b6bb5741fdf4718b30b0f5b4552a528
Signed-off-by: Matt Spinler <spinler@us.ibm.com>
diff --git a/inc/gpio.hpp b/inc/gpio.hpp
index 98df21b..ca83082 100644
--- a/inc/gpio.hpp
+++ b/inc/gpio.hpp
@@ -19,3 +19,10 @@
 
 int configGpio(const char* gpioName, int* fd, sdbusplus::bus::bus& bus);
 void closeGpio(int fd);
+bool gpioDefined(const std::string& gpioName);
+
+template <typename T>
+bool hasGpio()
+{
+    return gpioDefined(T::getGpioName());
+}