create SkDrawBase from SkDraw

The goal is to have a subset of SkDraw that does not require rasterpipeline or other non-essentials if its only being used for tasks
like creating A8 masks.

Two interesting changes:

1. make the blitter chooser a function-pointer, breaking the linker's
   requirement to bring in unneeded code.
2. move all non-critical methods out of SkDrawBase (e.g. bitmaps, text)
   leaving it only with rects and paths.

Note - the new A8 blitter only supports a minumum number of blendmodes : src and srcover -- as those appear to be the only ones referenced by SWMaskHelper and ScalerContext. Trivial to add more (there is a template/table in SkBlitter_A8.cpp) as needed.

Change-Id: I1f949ff643c7982ffdd1460a252f473cd3729728
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/655436
Reviewed-by: Kevin Lubick <kjlubick@google.com>
Commit-Queue: Brian Osman <brianosman@google.com>
Commit-Queue: Robert Phillips <robertphillips@google.com>
Reviewed-by: Brian Osman <brianosman@google.com>
Auto-Submit: Mike Reed <mike@reedtribe.org>
Reviewed-by: Florin Malita <fmalita@google.com>
17 files changed