Even tests should do something on failure.
Basic Surface.drawLayer() for CanvasSurface. Other tweaks.

I should really revamp the two canvas rendering backends to share a bunch of
code like the GL backends do. The backend really just needs to provide a root
Canvas and a Canvas implementation and everything else could be generic.

Then we could conceivably reinstate the Java canvas backend if desired, so that
I could test the shared canvas code path more quickly and robustly, and a
developer that knew they were going to deploy to HTML/Canvas or Flash could
test using Java/Canvas to be sure they weren't using exciting features that
don't work on Canvas backends (like tinting).