code: public T header(String name, String value) {
          Collection<String> l = headers.get(name);
          if (l == null) {
              l = new ArrayList<String>();
          }
          l.add(value);
          headers.put(name, l);
          return derived.cast(this);
      }
docs: Add a header.
  @param name header name
  @param value header value
  @return this