fix: prevent destructor crash on failed lib init
fix: prevent destructor crash on failed lib init / member pointers need initialization
Merge branch 'zuckschwerdt-fix-destructor-crash'
fix: make sure the top level directories for config and cache exist