Add special case for TargetLogLatency == 0

A bit of a rough hack, but if such a latency is passed, bypass the
ticker goroutine altogether.

An alternative would be to tune the RequestSizeTrigger to zero, but
this is an exposed field, and modifying its value to not be that which
the caller has passed in the configuration seems to violate the
principle of least astonishment.

Signed-off-by: Daniel Farina <daniel@fdr.io>
Move empty-request-prevention guard

Previously, in some situations it was possible to sample statistics
and then try to send an empty request.  Instead, just swap Bundles
blindly (without checking statistics first) and do nothing with said
Bundle should it be empty.  Since Bundles are nominally immutable
after being produced by SwapBundle, it should become impossible to
send a Bundle that is empty.

Signed-off-by: Daniel Farina <daniel@fdr.io>
Exit on error rather than continuing

Otherwise a panic will occur from lobbing around nil values.  Mea
culpa.

Signed-off-by: Daniel Farina <daniel@fdr.io>