Various improvements

* make the main modrana modrana singleton available to basic modules
* add a convenience notification function
* add a call for triggering non gui startup tasks
* dont load device module again if it is already loaded
Add the requirements module

This module provides functions and decorators for checking
if requirements of a given function are fulfilled.
Various provider base class improvements

* add callback to the dummy controller, so it can be used in case normally asynchronously
called function is running in the main thread
* pass kwargs to the search function
Convert local search to the new asynchronous provider framework

Also convert all local search users and cleanup a lot of very old related code.
For example the search result display was still using the raw local search result format directly.