atomic lint dense linear algebra
this merge request introduces the first clang-tidied chapter as well as some necessary infrastructure set up
CMake/*:
- made changes to build system to properly find the intel MKL on x86_64 chips.
Docker/*
- upgraded to Eigen from source (later than 3.4.0), due to a bug in Eigen 3.4 that was reported by the static checker (see here https://gitlab.com/libeigen/eigen/-/merge_requests/1036/diffs?commit_id=72b3d1da55aa6567f74fb87813006f4f4f9d5d5b#9b73cdaaf42b0a6d50abe5fb3dc5ab6e3be5502f_307_305)
Clang-tidy/*:
- added more explanations of excluded (i.e. not useful for our purposes) checks and changes for configuration
LectureCodes/DenseLinearAlgebra/*:
- removed "using namespace", since it clutters the translation unit
- introduced const wherever possible
- removed duplicate type specifications (used auto in this case)
- integer type hygiene (prevented comparison of different signedness and narrowing conversion)
- sorted includes by name
- avoided pointer arithmetic, replaced with vectors/arrays/spans
- avoided multiple return or exit in main, used proper branching and exit codes instead
- modernized headers
- modernized function declaration