Rewrite canvas writeImage to use SkCanvas::readPixels.
This is use of the better/newer APIs, which should also handle the
unpremultiplying (although not really tested).  The code still makes
a copy of the pixels, which would be nice to avoid, but it seems that
is what currently must be done with the FreeImage APIs.
Perhaps in the future we should move to SkImageEncoder, we currently
only support writing PNGs anyway.