[gfx] Point nativeImageData at the Context2D rather than the Canvas.

This would fix #63. It's a little strange that `nativeImageData` hold types of either Image and/or the canvas/context, but I left that behavior as-is for now, assuming it's there to avoid unnecessary conversion between Image and a canvas, since we can render both directly to a context.