IVGCVSW-6856 Add GATHERNd FrontEnd and Ref Implementation

* Add front end
* Add reference workload
* Add unit tests
* Add EndToEnd test

Signed-off-by: Teresa Charlin <teresa.charlinreyes@arm.com>
Change-Id: I4cebd17b18476df86162e2dda3366c10e80bd2f8
diff --git a/src/armnn/Network.cpp b/src/armnn/Network.cpp
index a365550..226d478 100644
--- a/src/armnn/Network.cpp
+++ b/src/armnn/Network.cpp
@@ -379,6 +379,11 @@
     return pNetworkImpl->AddGatherLayer(descriptor, name);
 }
 
+IConnectableLayer* INetwork::AddGatherNdLayer(const char* name)
+{
+    return pNetworkImpl->AddGatherNdLayer(name);
+}
+
 IConnectableLayer* INetwork::AddSwitchLayer(const char* name)
 {
     return pNetworkImpl->AddSwitchLayer(name);
@@ -2442,17 +2447,22 @@
 }
 
 IConnectableLayer* NetworkImpl::AddStridedSliceLayer(const StridedSliceDescriptor& stridedSliceDescriptor,
-                                                 const char* name)
+                                                     const char* name)
 {
     return m_Graph->AddLayer<StridedSliceLayer>(stridedSliceDescriptor, name);
 }
 
 IConnectableLayer* NetworkImpl::AddGatherLayer(const GatherDescriptor& gatherDescriptor,
-                                           const char* name)
+                                               const char* name)
 {
     return m_Graph->AddLayer<GatherLayer>(gatherDescriptor, name);
 }
 
+IConnectableLayer* NetworkImpl::AddGatherNdLayer(const char* name)
+{
+    return m_Graph->AddLayer<GatherNdLayer>(name);
+}
+
 IConnectableLayer* NetworkImpl::AddMergeLayer(const char* name)
 {
     return m_Graph->AddLayer<MergeLayer>(name);