Queue depth reporting

This PR includes the following changes:

1) logs when the queue depth approaches 80% of maximum
2) Catches unchecked exceptions while sending events and retries them up to three times (with no backoff)
3) logs any fatal unchecked exceptions that will stall the Flusher thread completely