Upload new text surfaces when properties change.

Fixes regression introduces in 4549af0ada7f599bef8ae536b25f348e44d3cfce.
Fix colour objects ignoring their alpha properties.

Alpha was computed in the wrong place. This also changes the clear color
so that we're using opaque black instead of transparent black.

This broke in be82c2cb8bb38a6ccb833978e89110b7326a4cc6.
The colour filter object area should be passed each time it renders.

When creating the current ColourFilter interface, I made the area where
the filter was rendered set at construction time. This meant that
further updates to the rect were ignored. Now we pass the current rect
each time we try to render. Added unit test so this shouldn't regress.

Fixes regression introduced in c7863df04248097762f7614125bb592cb9ac7c2d.