Add a canvas create, break script’s dependency on gfx.

The build time on my laptop after touching gfx goes from 1m37s ot 46s.

r? @pcwalton, @jdm

@pcwalton, you wanted all code using Azure to be in the gfx crate. (#2921) Is it acceptable if it’s gfx and canvas, instead?