[Feature] add external libs for general programming
This MR adds Catch2 and GSL-Lite as external libraries (git submodules). Both libraries give tools to increase code quality, correctness and readability.
- Catch2 is an header-only unittesting framework
- GSL-lite is an implementation of the Guideline Support Library and give type annotations, contract handling and other goodies that allow programmers to show intend better.
CI executes unittesting now on every compile.