Layout refactor

#### Layout refactor

This work splits the `Layout1` type into `Layout` and `LayoutLR`. `Layout` now represents a chart with one x axis and one y axis (of course this axis can be shared on both sides). `LayoutLR` in addition has the ability to display two different y axis on each side of the chart. `Layout1` was devided/removed, because it was a mixture of both types and allowed operations that were not wanted. In addition `LayoutLR` can even display two different y axis that represent different types of data, which was not possible before.

Several other changes were made along the way:

* `AxisVisibility` type was introduced to determine which parts of an axis shall be displayed at all. It contains three flags to turn the axis line, labels and ticks on or off.
* `_laxis_visible` was removed from `LayoutAxis` since its function is now replaced by the new `AxisVisibility` type.
* The compression of x labels was removed from `StackedLayouts`. Each Layout now controls which axis are displayed itself. Also `StackedLayout` supports both types of layout.
* All tests were modified to work with the new interface and produce the same charts as before.

All commits for this part were made in September.

#### Font embedding in SVGs

This pull request contains all changes from timbod7/haskell-chart#8.

The commits for this work are on Aug 26 to Aug 29.