Add an option to the object

        :param opt_name: option name
        :type opt_name: str
        :param otype: option type
        :type otype: subclass of :class:`.GenericType`
        :param hidden: if True the option will be hidden
        :type hidden: bool

def add_option(self, opt_name, otype, hidden=False):
        """ Add an option to the object

        :param opt_name: option name
        :type opt_name: str
        :param otype: option type
        :type otype: subclass of :class:`.GenericType`
        :param hidden: if True the option will be hidden
        :type hidden: bool
        """
        if self.has_option(opt_name):
            raise ValueError("The option is already present !")
        opt = ValueOption.FromType(opt_name, otype)
        opt.hidden = hidden
        self._options[opt_name] = opt