Validate component options

This PR enables component developers to declare required options into their components.

The components with required options can not be started if those options are not provided by the user, and a message will be sent to the application logger (if enabled) in such a case.