IVGCVSW-5322 Fix segfault between Neon and Cl layers

 * Fallback to memory copy if memory import is not supported
 * Remove direct compatibility between Neon and Cl Tensors
 * Unit tests fallback from Neon to Cl and Cl to Neon

Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Change-Id: Iec00a77423fb23b37a6b1aefee1b2ec4d649efca
diff --git a/src/backends/cl/ClTensorHandleFactory.cpp b/src/backends/cl/ClTensorHandleFactory.cpp
index 33995f7..237f27a 100644
--- a/src/backends/cl/ClTensorHandleFactory.cpp
+++ b/src/backends/cl/ClTensorHandleFactory.cpp
@@ -73,10 +73,11 @@
                                                                          const bool IsMemoryManaged) const
 {
     std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo);
-    if (IsMemoryManaged)
+    if (!IsMemoryManaged)
     {
-        tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
+        ARMNN_LOG(warning) << "ClTensorHandleFactory only has support for memory managed.";
     }
+    tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
     return tensorHandle;
 }
 
@@ -85,10 +86,11 @@
                                                                          const bool IsMemoryManaged) const
 {
     std::unique_ptr<ClTensorHandle> tensorHandle = std::make_unique<ClTensorHandle>(tensorInfo, dataLayout);
-    if (IsMemoryManaged)
+    if (!IsMemoryManaged)
     {
-        tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
+        ARMNN_LOG(warning) << "ClTensorHandleFactory only has support for memory managed.";
     }
+    tensorHandle->SetMemoryGroup(m_MemoryManager->GetInterLayerMemoryGroup());
     return tensorHandle;
 }