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/CMakeLists.txt b/src/CMakeLists.txt
index 20379dd..4ce3d3c 100644
--- a/src/CMakeLists.txt
+++ b/src/CMakeLists.txt
@@ -981,4 +981,4 @@
 	runtime/Tensor.cpp
 	runtime/TensorAllocator.cpp
 	runtime/Utils.cpp
-)
+)
\ No newline at end of file