Added a docstring, see commit 83bb38a071f407560abcca53b7f6e07d6b0ca0e5 .

I've also added a config option "stackedGraphNaNFill" to control NaN handling. The default "all" interpolates internally and repeats points at edges if needed. Other options are "inside" (interpolate only, zero for NaNs at edges) and "none" (treat all NaN as zero).

The reason for the option is that different graphs need different handling based on the data source. For example, our monitoring has timeseries such as exception rates that come into existence suddenly with nonzero values, and these are NaN outside the period where the specific exception existed. Those work best with the "inside" option. For most other graphs, "all" is better, for example it avoids a spurious dropoff at the left or right edges of stacked graphs if the series don't all start and end at exactly the same time. What do you think?