'Adds a (name, value) pair, doesn\'t overwrite the value if it already
exists.
>>> headers = HTTPHeaderDict(foo=\'bar\')
>>> headers.add(\'Foo\', \'baz\')
>>> headers[\'foo\']
\'bar, baz\''

def add(self, key, val):

    key_lower = key.lower()
    new_vals = (key, val)
    vals = self._container.setdefault(key_lower, new_vals)
    if (new_vals is not vals):
        if isinstance(vals, list):
            vals.append(val)
        else:
            self._container[key_lower] = [vals[0], vals[1], val]
