A potential solution to diagrams/diagrams-cairo#50.

Complicated by the fact that `defaultAnimMainRender` doesn't know what
data type a backend is using for its options, or even whether it has
looping options at all, so it has to take an extra argument which is
`Maybe` a setter for the looping options.  It uses this to set looping
to `False` for all but the last frame.

I'm not yet convinced whether this is the right thing to do; please discuss.  Note this would require changes to `-cairo` and `-rasterific` as well.  Also, the looping stuff is due for an overhaul.  (*e.g.* switching to `fsnotify` so we don't have to conditionally exclude it on Windows, pulling out lots of the `cairo` code and generalizing it so other backends can use it, etc.)