I think it would make sense to swap the names from `disallow` to `allow` as the conditions below are also all negated which makes it hard to understand what's meant:

```scala
// we only allow user-specified Content-Type headers for responses to HEAD request with an empty entity
disallowUserContentType = entity.nonEmpty || ctx.requestMethod != HttpMethods.HEAD,
```
and
```scala
disallowUserContentType = response.entity.nonEmpty, // for empty entities we allow user-specified Content-Type
disallowUserContentLength = !chunkless
```