Changes with Apache Traffic Server 8.0.2
  #3601 - Add TLSv1.3 cipher suites for OpenSSL-1.1.1
  #3927 - cppapi :InterceptPlugin fix
  #3939 - Make sure the index stays positive
  #4217 - Fix a regression in the traffic_ctl host status subcommand. 
  #4369 - Doc: Fix doc build to work with Sphinx 1.8.
  #4541 - Doc minor fixes.
  #4700 - sslheaders experimental plugin:  fix doc typo, improve container use.
  #4701 - Make sslheaders plugin better conform to documentation.
  #4716 - Revert "Two more places to check whether attempting half_closed connecton logic is feasible"
  #4752 - Added null value init for VConn args array
  #4799 - Doc: parent config has more features than balancer plugin
