Counter is a rolling counter that increments an index up to a maximum value. If the counter reaches
the maximum then the counter resets to 0. A single counter instance may be used by multiple Go routines.
New returns a new rolling counter
Next increments the counter. If the counter reaches n then
the counter is reset to 0. Note: n must be greater than 0 or else
a panic will result.