health checking: refactor to avoid defer() in an endless loop

This leads to thousands of stuck goroutines otherwise :)

Also, after refactoring, the code is easier to understand.
health checking: lose the safety net, simplify code

Since this didn’t trigger during SDN’s outage, I am confident the
timeouts set on the connection are working as intended.
remove update.healthy = false, it’s the default
health checking: set Connection: Close
sources.debian.net: use ?hl=<line> in redirects