Tidy up close_if_idle in missing last_good_time case.
Close even active drains after they've been around too long.

This will avoid bad behaviour around load balancers where more
reliable nodes tend to accumulate too many connections over time as
the other ones drop out.

We do this by piggybacking on the existing timer we're using for idle
timeouts, so we should probably rename that timer.

The original design also called for randomizing the total timeout, but
this implementation just piggybacks on the fuzzing already present in
the idle timer. This may not be sufficient fuzzing; there's a check
every fuzzed five minutes to see whether it's gone over the 5 hour
limit, but it would probably better if the 5 hour limit itself were
fuzzed.
Don't update last_good_time in close_if_idle.

Turns out last_good_time actually doesn't get reset in between
disconnect/reconnect cycles; we need to preserve it.

See https://github.com/heroku/logplex/commit/af34407eb306d0812a196a7a26e4bbfb6e7339d1#commitcomment-5061990
Add tests for TCP drain max TTL.
Rename *_total_timeout to *_max_ttl.
Add tests for max TTL of HTTP drains.
Rename idle_timer -> close_timer.

This timer is now responsible for closing for multiple reasons, not just idling.
Clean up init_per_testcase in HTTP drain tests.
Take care of idle_timeout messages from old revisions.

This will let us seamlessly upgrade without needing to cancel a bunch
of timers and restart them with the new message name.
Be more specific about matching against close_if_idle.
Simply restart close timer if it triggers in sending.

This should be more graceful, but it means that sometimes we'll have
active drains that last longer than the max TTL by a several
increments of the idle timer. I don't think this is a big problem
since the max TTL is a "soft maximum" intended to improve the load
balancing properties rather than something that needs strict adherence.
Factor out compare_point, connection_idle, and connection_too_old.
Stop using OS environment variables for timer config.
Still check close_if_old when in sending state.
Need to act as if we're disconnected if we get a post in disconnecting.
Remove unused line.
Merge branch 'close-active-drains'