Fix various leaks and memory issues found using both static clang code and using valgrind / Leak Sanitizer.
To improve the code quality, added also a pipeline that builds and tests using Address Sanitizer, although we can be strict about leaks only with clutter (after this branch) because there are still various leaks down in the stack that we can't easily catch (as per missing symbols that the sanitizer can't detect when using it's faster path - some tests can't run when using
So, until we don't fix these, let's just be more relaxed with leaks, while we still report them so that we can catch easier the new ones.
The check is still relevant, as ASAN will be able to catch other memory errors in a more effective way and with a symbolized-stack in most of the other cases.
In theory we could just replace the normal CI build with this one, instead of adding another pipeline as the overhead seems to be minimal (from what I see most of the extra time is spent to install the missing library), but it's probably better to keep having a normal pipeline too.
We should update the Docker file, but until then the branch install the needed libs.