More flexible styling via CSS

- [x] CSS styling support for bar, line and area charts
- [x] CSS styling support for axis
- [x] General fixes and improvements

Essentially this just removes inline styles and provides a default "theme" that can be changed. Classes are used as appropriately as possible to give some fairly fine grained control (for example each bar gets a bar-#{i} class so they could be styled individually).

Axis still need some work. Positioning of labels for example is tricky. Tick labels are handled by D3 and probably don't need much extra styling, but the axis labels need some work since there are probably a variety of position possibilities (top, side, etc.) and we will want to be able to avoid overlapping the tick labels.