upnp: add IGD discovery phase.

When the protocols start searching for IGD, the IGD discovery phase begins.
During this phase, all requested mappings will be marked as pending.
If an IGD is found, the pending mappings will be requested from the router.
If the phase ends due to a timeout, the pending mappings will be marked as failed

GitLab: #36
Change-Id: Icb19b05e40968d619cb032a949a8fe8acfef311b
diff --git a/src/upnp/protocol/pupnp/pupnp.h b/src/upnp/protocol/pupnp/pupnp.h
index 32fe19a..ae02d45 100644
--- a/src/upnp/protocol/pupnp/pupnp.h
+++ b/src/upnp/protocol/pupnp/pupnp.h
@@ -134,6 +134,9 @@
     // Start search for UPNP devices
     void searchForDevices();
 
+    // Start search for UPNP device in a different thread
+    void searchForDeviceAsync(const std::string& deviceType);
+
     // Return true if it has at least one valid IGD.
     bool hasValidIgd() const;