Generalize Color class to absolute colors.

This addresses concerns raised in issue #66 by letting the backend
choose which color space to render Color instances to. Functions are
provided for backwards compatibility with the old semantics, which were
to always render out to companded sRGB space.
Merge branch 'nandykins-master'. Closes #66.

The merge conflicts were between these changes and the new
"recommended fill color" changes (@c4271bb756), but it was quite
simple to merge the two.

Conflicts:
	src/Diagrams/Attributes.hs
add 'triangle' as a synonym for 'eqTriangle'

I've long thought it ugly and inconsistent that we have square,
pentagon, hexagon, etc. to create regular polygons, but have to write
'eqTriangle'.  This commit fixes that (while keeping 'eqTriangle' for
backwards compatibility).
do scaling on a Path before constructing PathLike in 'rect' (fixes #43)

We used to have

  rect w h = unitSquare # scaleX w # scaleY h

since unitSquare can produce any PathLike.  The new code
instead uses (unitSquare # scaleX w # scaleY h) to specifically
produce a Path, which is then deconstructed and passed into
'pathLike' to create any PathLike.

The difference is that while scaling by zero works fine for
Path it does not work very well for, say, Diagrams (leading to
NaNs or worse).  This way, we force the scaling to happen on a
Path, where we know it will behave properly, and then use the
resulting geometry to construct an arbitrary PathLike.
Merge pull request #70 from diagrams/issue43

do scaling on a Path before constructing PathLike in 'rect' (fixes #43)
bump upper bound to allow semigroups-0.9
add 0.6.0.1 to CHANGES
Merge branch 'master' of https://github.com/diagrams/diagrams-lib

Conflicts:
	src/Diagrams/TwoD/Shapes.hs