Canvas Unification

Now operates on a single canvas, selecting the right mode (WebGL vs 2D)
as necessary. Also some minor code cleanup and commenting.