Add ConstTensorsAsInput support for Conv3d

 * Constant weights and biases are now stored as Constant layers.
 * Updated Serializer, Deserializer and unit tests to reflect this.
 * Updated TfLiteParser.
 * Updated Ref backend to handle constant weights and
   bias as inputs rather than reading from member variables.
 * Added Conv3d EndToEnd test.
 * Added NCDHW DataLayout and unit tests.

Signed-off-by: Matthew Sloyan <matthew.sloyan@arm.com>
Change-Id: I10cdd354ca5f1c748730f92ffdb36bf810f83c8e
diff --git a/src/armnnUtils/DataLayoutIndexed.cpp b/src/armnnUtils/DataLayoutIndexed.cpp
index c1c98fc..01505a0 100644
--- a/src/armnnUtils/DataLayoutIndexed.cpp
+++ b/src/armnnUtils/DataLayoutIndexed.cpp
@@ -31,6 +31,12 @@
             m_WidthIndex    = 3;
             m_ChannelsIndex = 4;
             break;
+        case armnn::DataLayout::NCDHW:
+            m_ChannelsIndex = 1;
+            m_DepthIndex    = 2;
+            m_HeightIndex   = 3;
+            m_WidthIndex    = 4;
+            break;
         default:
             throw armnn::InvalidArgumentException("Unknown DataLayout value: " +
                                                   std::to_string(static_cast<int>(dataLayout)));