Speed up MarshalJSON implementation

This moves a call for each point to serializing all the points in a
single MarshalJSON call.

benchmark               old ns/op     new ns/op     delta
BenchmarkCustomJSON     3765116       682244        -81.88%
Refactor Zipper's http.Get() calls
Add highestAverage(), highestCurrent()