fix: guard against None version in module_available
importlib.metadata.version() can return None in some environments (e.g. QGIS with custom import hooks). When this happens, Version(None) crashes with TypeError. Fixed by guarding the version result before passing it to Version().