ca7259ab95
GlobalLibraries and PreloadedFootprints each have deep object hierarchies that take noticeable time to destroy during shutdown. Since the OS reclaims all process memory anyway, running these destructors is wasted work. The new LEAK_AT_EXIT template wrapper heap-allocates the wrapped object on first access and never frees it, speeding up program exit. When built with address sanitizer, it uses __lsan_ignore_object to prevent false positive leak reports. Also added a valgrind suppression file for the same purpose.