Port hooks to init
Make do_claenup() explicitly call module cleanup functions
Fix do_cleanup() being never called
Fix plugin_unregister() leaving plugin list broken

The global plugin list head pointer should be reset when unregistering
the last plugin.
Add plugin_list_empty()
Store lists of modules in separate .list files