Introduce a ModuleListener

This is required to update the modules list e.g. if a module has been
uninstalled via context menu.

Also fixed a bug the didn't remove modules from the "installed" list when
they were uninstalled.
Use ModuleListener for the downloads list as well