Revert "IVGCVSW-2056 + IVGCVSW-2064 : move ClContextControl to the ClBackend"

This reverts commit d4dfa684941a21314b70593d01b0fc2167eebad4.

Change-Id: Id61ce69215505c3cf5d30ec2a7ec9127fb2554fc
diff --git a/include/armnn/Types.hpp b/include/armnn/Types.hpp
index 2249a36..cd6e17b 100644
--- a/include/armnn/Types.hpp
+++ b/include/armnn/Types.hpp
@@ -139,6 +139,20 @@
     Ceiling     = 1
 };
 
+/// Each backend should implement an IBackend.
+class IBackend
+{
+protected:
+    IBackend() {}
+    virtual ~IBackend() {}
+
+public:
+    virtual const BackendId& GetId() const = 0;
+};
+
+using IBackendSharedPtr = std::shared_ptr<IBackend>;
+using IBackendUniquePtr = std::unique_ptr<IBackend, void(*)(IBackend* backend)>;
+
 /// Device specific knowledge to be passed to the optimizer.
 class IDeviceSpec
 {
@@ -208,6 +222,4 @@
 /// Define LayerGuid type.
 using LayerGuid = unsigned int;
 
-struct EmptyInitializer {};
-
 } // namespace armnn