Use a single goroutine for meters.

Update meters to create a single goroutine responsible for ticking all
of the meters.
add opentsdb support
Return an error from Register and disallow dupes

This is a change to the interface that will appear as a breaking change
for authors of Registry implementations.  The change was made in support
of the change described below.

rcrowley/go-tigertonic#60 points out that metrics can be reregistered
causing the original metric to be lost.  This patch change the Registry
interface's Register method to return an error and implements this
change in StandardRegistry.Register and Register.
StandardRegistry.Register (and therefore Register) returns a
DuplicateMetric error if a name is already registered.
Style.
Merge branch 'issue-40'
Merge remote-tracking branch 'xiaohexie/master'
Added librato example to README.
Style: alphabetize, gofmt, etc.
Fix infinite loop in DuplicateMetric.Error

`%s` in fmt calls .Error(), so this was infinite looping.
Merge pull request #50 from wadey/patch-1

Fix infinite loop in DuplicateMetric.Error
Add a test for JSON encoding

This is mostly as an example for how to use it.
Don't dereference nil pointers in healthchecks
Add test to expose Sample data race
Fix data race in Sample.Count() method
Reduce slice re-allocations on UniformSample.Update
fixed duplicate metric problem at influxDB, on client.WriteSeries
Fix Meter.RateMean int64 overflow
Added JSON->io.Writer; consistent ordering to WriteOnce
gofmt
Merge pull request #57 from seunglee150/master

fixed duplicate metric problem at influxDB, on client.WriteSeries