BatchNorm changes to enable fp16 in armv8a multi_isa builds

    * Moved NCHW kernels fp16 and fp32 to their corresponding files
      src/cpu/kernels/fuse_batch_normalization/nchw/neon/fp16.cpp and
      src/cpu/kernels/fuse_batch_normalization/nchw/neon/fp32.cpp

    * Changes in filelist.json to include the new fp16 and fp32 files

    * Moved the template batch_normalization_nchw to impl.h as we
      need to instantiate it from fp16.cpp and fp32.cpp

    * Pooling layer: removed the guard __ARM_FEATURE_FP16_VECTOR_ARITHMETIC that
      prevented the FP16 kernel execution.

    * Partially resolves MLCE-1102

Change-Id: Ia8c85e9ffb76c9e387f9ae2685e5df5e52c8dc27
Signed-off-by: Pablo Marquez Tello <pablo.tello@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10777
Reviewed-by: Viet-Hoa Do <viet-hoa.do@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/filelist.json b/filelist.json
index a84db71..c34eff2 100644
--- a/filelist.json
+++ b/filelist.json
@@ -982,12 +982,15 @@
             "fp16": [
               "src/cpu/kernels/fuse_batch_normalization/generic/fp16.cpp",
               "src/core/NEON/kernels/batchnormalization/impl/NEON/fp16.cpp",
-              "src/cpu/kernels/fuse_batch_normalization/nhwc/neon/fp16.cpp"
+              "src/cpu/kernels/fuse_batch_normalization/nhwc/neon/fp16.cpp",
+              "src/cpu/kernels/fuse_batch_normalization/nchw/neon/fp16.cpp"
+
             ],
             "fp32": [
               "src/cpu/kernels/fuse_batch_normalization/generic/fp32.cpp",
               "src/core/NEON/kernels/batchnormalization/impl/NEON/fp32.cpp",
-              "src/cpu/kernels/fuse_batch_normalization/nhwc/neon/fp32.cpp"
+              "src/cpu/kernels/fuse_batch_normalization/nhwc/neon/fp32.cpp",
+              "src/cpu/kernels/fuse_batch_normalization/nchw/neon/fp32.cpp"
             ]
           },
           "sve": {