[bug 1]
category: scanline

We shouldn't allow zero width scanline entries, as
this can cause things to stuff up. Unfortunately
the 'intersection' routine (common.graphics._intercept)
can insert zero width sections, something which is
not easily fixed.

Reproduce:
Enable the assertions in common.graphics._intercept and
common.graphics.test.TestGraphics._validate, and bump
up the 'NUM_RUNS' and 'SCANLINES_PER_RUN' values in
common.graphics.test.TestGraphics.test_brute_force.


[bug 2]
category: scanline

Two triangles rendered next to each other, using the same
x/y values for a shared edge, can overlap on (or skip)
pixels. This can cause black sparkles to appear on
rendered surfaces.

This is likely due to the triangle renderer rendering
'up' and 'down' in different behaviour depending on
triangle winding, meaning the edge will be rendered in
different directions for both triangles, with precision
errors meaning different values will be used at some
y values.

The fix is to be consistent with a rendering direction
for both triangles.

Reproduce:
Run the 'cube' demo, and see the black pixels sparkling
on the faces of the cubes.
