made `on_register` hook for plugins optional
this is to prevent users who don't need this hook from implementing it
added `iterate_all` method for plugin manangers and `on_iterate` hook for plugins
this is for the use case where you need to iterate over all plugins without running a single on directly. An example could be a file validation system where each plugin is used to validate a different part of the file.