IVGCVSW-7526 Upgrade ArmNN to Tensorflow 2.12

 When creating a flatbuffers model, we need to provide an empty buffer 0 that is
 reserved by tensorflow. When creating empty buffers for inputs and outputs we
 can not pass in an empty vector, or tflite will assume that we know how many bytes to
 allocate in advance. Instead we need to only pass in the builder.

 * Update libraries in FindTfLite.cmake
 * Add nullptr to delegate struct for OpaqueDelegateBuilder
 * Fix issue in unit tests where Flatbuffers model was not being parsed by tflite
 * Tensorflow 2.12 now includes C++ 17 features. Update our cmake build
   to require a compiler to support these features.
 * Change minimum cmake in Arm NN to 3.7 as that's the minimum for the
   delegate build.

Signed-off-by: Ryan OShea <ryan.oshea3@arm.com>
Signed-off-by: Narumol Prangnawarat <narumol.prangnawarat@arm.com>
Signed-off-by: Colm Donelan <colm.donelan@arm.com>

Change-Id: I7d15b196b8c59b1914f8fc1c4c2f8960630c069c
diff --git a/CMakeLists.txt b/CMakeLists.txt
index be6c4c6..2bdab04 100644
--- a/CMakeLists.txt
+++ b/CMakeLists.txt
@@ -3,8 +3,10 @@
 # Copyright © 2020 NXP
 # SPDX-License-Identifier: MIT
 #
-cmake_minimum_required (VERSION 3.0.2) # 3.0.2 required for return() statement used in AddDllCopyCommands.cmake
+cmake_minimum_required (VERSION 3.7.0)
 project(armnn)
+set(CMAKE_CXX_STANDARD 17)
+set(CMAKE_CXX_STANDARD_REQUIRED ON)
 
 set(additional_cmake_files)
 list(APPEND additional_cmake_files