Make daemon commands configurable

Now each daemon can have different available commands.
Sample configuration and config guide in the README.md are updated.
Create Service class and refactor Daemon class to inherit from it

Service class is needed as an abstract class to avoid code duplication
when extending the application with non-deamon services.