Re-add process level stats logging, clean up process flow

- Add stats for keeping track of acked messages, reconnections, and failures until stop
- Use a time window for errors for stopping. If not enough errors have occurred in the time window, don't reconnect.
- Run all incrementing of counters through one function
- Add property to evaluate if consumer is idle
- Remove the reconnect signal handling
- Small code cleanup and improvements
- Handle message/consumer exceptions better