CMS-2972 Improve api.util.Loader

* moved loader classes to api.util.loader package
* created special loader events and put into the api.util.loader.event package
* create basic class BaseLoader
* refactored all loader classes to extend BaseLoader