Class ExponentialMovingAverage

Cumulative statistics for a series of real numbers with higher weight given to recent data but without storing any
history. Clients call append(double) every time there is a new measurement, and then can collect summary
statistics from the convenience getters (e.g. getStatistics()). Older values are given exponentially smaller
weight, with a decay factor determined by a "window" size chosen by the caller. The result is a good approximation to
the statistics of the series but with more weight given to recent measurements, so if the statistics change over time
those trends can be approximately reflected.