Disabled warnings as errors
bumped the cmake min version to 3.12 for c++20 support and -j flag
Placed a CMakeLists.txt in each subdirectory of the project
Enabled warnings as errors when building project target
Changed checks for clang-tidy
Changed indentation from 2 spaces to 4 in clang-format
Added pre-commit hook to apply clang-format formatting to the source tree