Add StorageHealth worker

* Separate Controller and Fetcher
* Add ability to create generic workers from its type
* Skip fetching if the worker doesn't have a Fetcher