Allowed each margin to specified individually.

This commit replaces _layout1_margin with _layout1_margins, which is a tuple
containing each margin rather than single value for all margins. The order
of the values matches that of the addMargins function (t,b,l,r).
Simplistic implementation of rot. axis labels and optional avoid_overlap.

Appears functional although testing is still required and the
implementation is niether thorough nor sufficiently general. This
code also modifies the usage of margins, and while it does not making
any API breaking changes, it may affect the appearance of some charts.
Merge branch 'rotatedLabels'

Conflicts:
	chart/Graphics/Rendering/Chart/Axis/Types.hs
	chart/Graphics/Rendering/Chart/Layout.hs