Setup pre-commit and include code formatting scripts

This patch
    - includes our code formatting scripts used in our precommit pipeline
    - sets up pre-commit framework to help contributors validate their patches

This has several benefits:
    - our repository becomes more inclusive to external contributions
    - we can use several hooks available online efficiently, w/o implementing our own
    - it speeds up our development flow

and, it is completely optional.

The pre-commit configuration includes running the following:
    - our code formatting scripts
    - CMake and Bazel build file generation scripts
    - hooks that check trailing whitespace, end of files, committed large files etc.

The number of checks can easily be extended using pre-commit framework.

Change-Id: I06bf1259715579d321f89820726a8301504c36d9
Signed-off-by: Gunes Bayir <gunes.bayir@arm.com>
Reviewed-on: https://review.mlplatform.org/c/ml/ComputeLibrary/+/10064
Reviewed-by: Jakub Sujak <jakub.sujak@arm.com>
Tested-by: Arm Jenkins <bsgcomp@arm.com>
Comments-Addressed: Arm Jenkins <bsgcomp@arm.com>
Benchmark: Arm Jenkins <bsgcomp@arm.com>
diff --git a/src/BUILD.bazel b/src/BUILD.bazel
index ca90107..7995bb5 100644
--- a/src/BUILD.bazel
+++ b/src/BUILD.bazel
@@ -652,6 +652,7 @@
 	"core/utils/FormatUtils.cpp",
 	"core/utils/InterpolationPolicyUtils.cpp",
 	"core/utils/ScaleUtils.cpp",
+	"core/utils/StringUtils.cpp",
 	"core/utils/helpers/fft.cpp",
 	"core/utils/helpers/tensor_transform.cpp",
 	"core/utils/io/FileHandler.cpp",
@@ -661,7 +662,6 @@
 	"core/utils/logging/LoggerRegistry.cpp",
 	"core/utils/misc/MMappedFile.cpp",
 	"core/utils/quantization/AsymmHelpers.cpp",
-	"core/utils/StringUtils.cpp",
 	"cpu/CpuContext.cpp",
 	"cpu/CpuQueue.cpp",
 	"cpu/CpuTensor.cpp",