Add InterfacesRemoved signal handling

When an InterfacesRemoved signal is received for a subscribed object
path, each interface returned is checked against the interface which was
defined for each object on the event. When these are equal, the
interface (and all associated properties) are removed from the shared
cache of event properties.

Tested:
    Manually added an InterfacesRemoved signal
    Verified interface was removed from object path in cache

Change-Id: I348d82f14e0cfba2b18a81a9f54c6cb06b586797
Signed-off-by: Matthew Barth <msbarth@us.ibm.com>
diff --git a/control/matches.hpp b/control/matches.hpp
index 855a749..ccacbc4 100644
--- a/control/matches.hpp
+++ b/control/matches.hpp
@@ -47,6 +47,20 @@
 }
 
 /**
+ * @brief A match function that constructs an InterfacesRemoved match string
+ * @details Constructs an InterfacesRemoved match string with a given object
+ * path
+ *
+ * @param[in] obj - Object's path name
+ *
+ * @return - An InterfacesRemoved match string
+ */
+inline auto interfacesRemoved(const std::string& obj)
+{
+    return rules::interfacesRemoved(obj);
+}
+
+/**
  * @brief A match function that constructs a NameOwnerChanged match string
  * @details Constructs a NameOwnerChanged match string with a given object
  * path and interface