Surface/Canvas API changes

Issue description

In an effort to make SkCanvas more "general", since it can front for raster/gpu/picture/pipe/pdf/etc., we want to deprecate APIs that look to raster-specific. These can more naturally live on SkSurface (which does not front for pictures or pdf).
e.g.
- Move readPixels() from canvas to surface
- remove NewRaster() from canvas (where are the pixels) and use surface instead.