http2: change how Server.IdleTimeout is initialized from http.Server

This is an alternate implementation of https://golang.org/cl/32230
which is nicer to the dead code elimination in Go's linker.

The old implementation causes a test in the net/http package to fail:
https://storage.googleapis.com/go-build-log/2c24cf88/linux-amd64_39728ac9.log
... since it caused the cmd/go binary to link in the whole http1 & http2 Server
code, due to the init func and slice which referenced those symbols.

Instead, use an explicit func.

This aso includes the tests meant to be in CL 32230 but which I'd
failed to git add earlier.

Updates golang/go#14204

Change-Id: I13dc138bf0c4df65bc282133ee94036b7f84ab70
Reviewed-on: https://go-review.googlesource.com/32323
Run-TryBot: Brad Fitzpatrick <bradfitz@golang.org>
TryBot-Result: Gobot Gobot <gobot@golang.org>
Reviewed-by: Martin Möhrmann <martisch@uos.de>
4 files changed