Closes #655.
The second commit is the most interesting one:
refactor(tests): Refactored Blender example tests
Instead of the relatively complicated test discovery mechanism in
`test_blender_examples.py`, we can write explicit tests as in
`test_examples.py`.
This enables us to get rid of `opt_in` and to make changes specific to a
test within the test itself instead of the example script. It also
enables running arbitrary code within a test, for example to render and
snapshot multiple images.
The new implementation does have disadvantages.
First, these names have to be picked manually and aren't automatically
generated from the tests' pytest identifiers. On the plus side, we can
now use much shorter names for convenience.
Second, because all example tests are executed in the same Blender
process and `bpy` doesn't play nice with multithreading, it is no longer
possible to use pytest-xdist for the Blender examples. Fortunately,
Blender renders on multiple threads by default so the tests still
complete within an acceptable time frame.
Fixed up the Pascal example because it benefits from multiple snapshots (Pascal's theorem and its dual version) and I needed an example for the developer's guide that showcases multiple snapshots.