Register a new option with the namespace.

        Args:
            name (str): The name to register the option under.
            option (option.Option): The option object to register.

        Raises:
            TypeError: If the option is not an option.Option object.
            ValueError: If the name is already registered.

def register(self, name, option):
        """Register a new option with the namespace.

        Args:
            name (str): The name to register the option under.
            option (option.Option): The option object to register.

        Raises:
            TypeError: If the option is not an option.Option object.
            ValueError: If the name is already registered.
        """
        if name in self._options:

            raise ValueError("Option {0} already exists.".format(name))

        if not isinstance(option, opt.Option):

            raise TypeError("Options must be of type Option.")

        self._options[name] = option