Register multiple new commands by investigating the iterable `values`. For
        each item in `values`, instances of `Command` are registered, and
        subclasses of `Command` are instantiated (with no arguments passed to
        the constructor) and registered. Other kinds of values are ignored.
        Returns 'self'.

def populate (self, values):
        """Register multiple new commands by investigating the iterable `values`. For
        each item in `values`, instances of `Command` are registered, and
        subclasses of `Command` are instantiated (with no arguments passed to
        the constructor) and registered. Other kinds of values are ignored.
        Returns 'self'.

        """
        for value in values:
            if isinstance (value, Command):
                self.register (value)
            elif is_strict_subclass (value, Command) and getattr (value, 'name') is not None:
                self.register (value ())

        return self