IVGCVSW-3596 Register the dynamic backends in the BackendRegistry

 * Added getter for the factory function in the DynamicBackend class
 * Added new RegisterDynamicBackends method in utils class
 * Added dynamic backend registration process in the Runtime class
 * Added new dummy dynamic backend objects for testing
 * Added unit tests for dynamic backend registration
 * Added convenience methods to BackendId

Change-Id: I01e147d1d6f01bf56747ad946f73f867af5770c4
Signed-off-by: Matteo Martincigh <matteo.martincigh@arm.com>
diff --git a/src/armnn/Runtime.cpp b/src/armnn/Runtime.cpp
index 3505030..ddfa6b4 100644
--- a/src/armnn/Runtime.cpp
+++ b/src/armnn/Runtime.cpp
@@ -9,7 +9,6 @@
 #include <backendsCommon/BackendRegistry.hpp>
 #include <backendsCommon/IBackendContext.hpp>
 #include <backendsCommon/DynamicBackendUtils.hpp>
-#include <backendsCommon/DynamicBackend.hpp>
 
 #include <iostream>
 
@@ -253,7 +252,10 @@
     std::vector<std::string> sharedObjects = DynamicBackendUtils::GetSharedObjects(backendPaths);
 
     // Create a list of dynamic backends
-    DynamicBackendUtils::CreateDynamicBackends(sharedObjects);
+    m_DynamicBackends = DynamicBackendUtils::CreateDynamicBackends(sharedObjects);
+
+    // Register the dynamic backends in the backend registry
+    DynamicBackendUtils::RegisterDynamicBackends(m_DynamicBackends);
 }
 
 } // namespace armnn