No need for heartbeat timer anymore
Unify gauge handling w/ counters and timers -- gauge object gets an Update() method called on it
Unify interface of gauges/timers/counters -- foo = NewFoo(name string), foo.Start(), foo.Update(value float64), foo gets to call foo.save() on it's own
DRY up receiver -- handling each datatype is the same cycle with a distinct channel and method for creating new gobatsd.Metrics