Reintroduce persistant zooms for rangeSlider Preview

Code doesn't touch the preview, by using the fact that it's all based on the
graph.window.xM(in|ax) values
Do not use scale if there isn't a value to scale
Add a onChangeDo to fire a function on slider render

This allow us to pass our generate_legend() function, which will update the metrics for the series
whenever the zoom is changed. The summary will only use data within the zoomed
date range, making these values dynamic.
syntax
update built libraries