WIP: Visuals tests

Currently basic tests for different types of polygons, ellipses and arcs have been added.
Keep in mind opportunities for code de-duplication. What you've used here seems to be a *very* common pattern for visual testing. It would be nice if each of these was just a call to something like:
```
with TestingCanvas():
    ellipse = ...
    ellipse.draw()
    assert_image_equal(...)
```
`TestingCanvas` would just subclass `Canvas` and take (for now) two arguments, the `size` and `bgcolor`, which would default to `(100, 100)` and `(0, 0, 0, 1)` as you have used here. And then when other people want to test their visuals, it's simplified by several lines. WDYT? It seems like it could be pretty useful.

At some point we should also get rid of the requirement to have an `img_lib` by making a PNG-reading function, but that should probably be a separate PR.