Hold gauges for a limited time

While a zero-order hold is useful for metrics that are updated
rarer than flush interval, they shouldn't be kept alive indefinitely.

As we don't know the real update interval of the client (and wiring
it in the protocol is slightly overkill), let's simply specify
a global multiple of flush intervals.

Sending a single gauge with --gauge-hold=1 stores the following
metrics, one for the up to date measurement and one held back.

================== Flush completed. Waiting until next flush. Sent out 0 metrics =======
Sending foo => gauge=1234.0 [ttl=2]
================== Flush completed. Waiting until next flush. Sent out 1 metrics =======
Sending foo => gauge=1234.0 [ttl=1]
================== Flush completed. Waiting until next flush. Sent out 1 metrics =======
================== Flush completed. Waiting until next flush. Sent out 0 metrics =======