Changes with Apache Traffic Server 8.0.4
  #5357 - Revert TS-374 to avoid deadlocks
  #5379 - Throttling results in tight loop if there are no new connections
  #5484 - Don't read frames after sending GOAWAY with an error code
  #5531 - Allow number of settings per H2 session to be configurable
