Project: chart
Task (moderate): - Check or uncheck `#legends` to create `LineChart` instance:
  - reuse function `createChart()`
  - add new `options` attribute:
    - legends: the `checked` value of `#legends`
- In `./common/Chart.js`, when `options.legends` is true or not defined:
  - append g element (class `legends`) on the top of `svg`
  - append g element (class `legend legend-{index}`) in `.legends`
  - append circle (color is the same as `.dataset` line color) and text (content `dataset.label`) in each `.legend`
- In `./common/Chart.js` and `./common/LineChart.js`, when `options.legends` is true or not defined:
  - reduce `.datasets` lines height
  - reduce `.axes-y` axis-y height, update axis-y labels position
  - and make `.legends`, `.datasets`, `.axes-x` and `.axes-y` fill the entire `svg` space