keyboard/toggle/tooltip: replace destructors with cleanup()
Previously added destructors fired too late, after the renderer was destroyed, causing seg faults on musl (though, not on glibc, so it must be some undefined behavior or ???)
Explicitly calling a cleanup() for these objects to free textures at the end of the app seems to be working well, no leaks and no use-after-free/double-free/etc issues. The default destructors for these objects is used for everything else.