Add helpers for common optparse-applicative backend command line.
Renamed ToDiagram to ToResult.
Added default implementations for anim and multi.
Fix warnings from -Wall.
Depend on safe for readMay.
Fix haddock error.
Add Parseable instances for colors.
Update Haddocks a bit.
Added loop options.
minor formatting/cleanup
add `fromAlphaColour` method to Color class

This allows (partial) conversions in both directions, which I found
necessary for implementing some lenses to set some color in a given
style.  Adding such a method seems generally unobjectionable to me.
D.Attributes: export utility functions mk{Fill,Line}Color

These are intentionally not re-exported from the Prelude; most users
should not need them.
D.TwoD.Arrow: Lenses for setting head, tail, and shaft style directly.

This is the sort of convenient thing that we can do now that we use
lens for everything: we can provide headColor, tailColor, and
shaftColor directly as "virtual fields" so the user doesn't have to
think about style modification functions in the common case where they
just want to set the color (and we also protect them from the easy
mistake of setting the line color on the head, or fill color on the
shaft).

This is something of a proof-of-concept.  Ideally we could even
refactor these as e.g. headColor = headStyle . styleFillColor where
styleFillColor :: (Color c, Color c') => Setter (Style v) (Style v) c c'.
Default instance for FillColor

Not sure why we were missing this before.
D.Attributes: Setters for Style -> {line,fill} color

Note these can't be lenses because there's nothing to return if the
style does not contain a line or fill color attribute. (One could just
return a default value but that would violate the lens laws.)

Seems to work pretty well!  Perhaps we should add setters for other
attributes as well.
D.TwoD.Arrow: reimplement {head,tail,shaft}Color lenses in terms of style{Line,Fill}Color
D.TwoD.Arrow: bug fix: styleLineColor should set line color, not fill color
make {head,tail,Shaft}Color less polymorphic

The more polymorphic versions caused problems for type inference in typical
use cases.
D.TwoD.Arrow: minor Haddock improvements
D.TwoD.Arrow: remove default shaft width

The shaft width will now be taken from the ambient line width
attribute by default.  Explicitly setting the line width via the
shaftStyle will always override this default.