Push counts to Circonus rather than having Circonus pull from Redis

Publishing of counts now uses a lock, whose timeout controls the frequency of counts being published to the publisher. Counts are persistent, so it is expected that the back-end is able to derive 'rate' information from your counts (Circonus can with the "counter" type) for it to be a bit more useful. On a configurable timed interval, the counts are reset to 0 to avoid issues with numeric overflow in Redis.

Details:

* Changed the publisher interface so that the API pushes the data to the configured publisher. Makes it easier to implement a publisher as it doesn't have to know anything about TelemetryAPI, just the data model
* Moved some logic such as resetting data from the publisher to the TelemetryAPI
* Fixed potential overflow issues with a reset interval
* Fixed memory leak when telemetry is disabled
* Consolidated console and Circonus intervals into one "Publish" interval
* Added a new unit test for testing timed reset and publish