Fixed bug! It works again - but logically is better.

The bug was in the rectangle drawer - the simplest code of all.
Sheesh... I guess having tests is nice anyway.

The picture handler now uses the screen collider, which implements
a one deep recursive rectangle collision algorithm, enabling
registered items to make use of a list of rectangles, but not need
to move all of them when registering or deregistering (so only the
outer rectangle need be registered or deregistered, which is much
faster).

The code runs at 100fps more or less, and 60fps easily. Note that
with the whole screen updating each frame, even with no drawing
at all, I can only reach about 40fps!

There seems to be a slight jitter in the red rectangle's motion
(controlled with arrow keys). This may be a problem with the pygame
clock. The frame computation time varies by about 5 milliseconds
at very regular intervals, suggesting it is the clock rather than the
code. It may be hampered by the fact this is running inside a Virtual
Box...