Before, chart customize was done by creating a new `Psychrochart` object based on some modified chart configuration,
so creating custom plots, or even changing chart limits, was _challenging_ ๐
**Now**, when `chart.config` changes, any call to `chart.save()`, `chart.make_svg()`, or `chart.plot()`
will regenerate the chart data (limits, enabled curves, styling, etc.) before plotting, with only the visible curves inside limits,
(no more 0-size artifacts in SVGs, and most errors because some var is out of range should be gone now ๐ค)
Changes
- โป๏ธ Update example notebook with API changes, and using `chart.make_svg()` as the recommended method to generate SVGs
- ๐ **Parse colors into RGBA values**, so "red", "FF0000", "FF0000FF" produce the same float repr [1., 0., 0., 1.]
- ๐๏ธ Add **mutation control for configuration models**, and use it to check if there is any config change before creating a chart, triggering a chart-data regeneration if necessary
- ๐ง Add new field `ChartFigure.dpi` to chart config, for easy customization of matplotlib Figure DPI
- โก๏ธ Optimize generation of psychrometric curves inside plot limits