Adds the new key to this enumerated type.
        
        :param      key | <str>

def add(self, key, value=None):
        """
        Adds the new key to this enumerated type.
        
        :param      key | <str>
        """
        if value is None:
            value = 2 ** (len(self))

        self[key] = value
        setattr(self, key, self[key])
        return value