First version of canvases drawing above and below the previous content/background.

@shans Works 60% of the time. I've got an idea on how to improve it, but this is a first pass.
We should make setting onBackground trigger invalidation.