Reify various timeout behaviors
Reify various timeout behaviors

Also refactor the name "Duration" to shorter and more make-sense name
"Period".  This breaks the API.

This is a continuation of f5492b8632f0ce33e922975f25f9d8143c8f397b:
although setting timeout to be "nil" allowed bookkeeping necessary to
enable immediate log flushing (now expressed with the symbol
TimeTriggerImmediate), there was no obvious way to neatly handle the
other useful case, which is to never flush based on timeouts, rendered
now as TimeTriggerNever.

This adds some symbol bloat, but the overall intent seems spelled out
somewhat more clearly in the program text now, as well as gaining the
feature exposed by TimeTriggerNever.

Thanks to Go's notion of a zero-value, one can elide explicitly
setting the behavior and get the old, most likely useful one,
TimeTriggerPeriodic.

Signed-off-by: Daniel Farina <3d0f3b9ddcacec30c4008c5e030e6c13a478cb4f@heroku.com>

logplex/logplexc,heroku/logplexc