Define initial draft of SkBlurEngine API

Updated the skif::Backend to return a SkBlurEngine. Both ganesh and
graphite backends now have very simple engines. The long term plan is
to have FilterResult handle rescaling to the algorithm's max sigma,
and move the shader-based blur algorithms into src/core so that all
backends can use it. Then the A8 and N32 CPU implementations will be
moved into a raster-backend-only SkBlurEngine. Eventually, Graphite
will also add compute implementations. Once mask filters are handled
by SkCanvas layers, GrBlurUtils::GaussianBlur() can go away since it
is becoming redundant with FilterResult::Builder::Blur and the
shader-based SkBlurEngine.

Bug: b/238761355
Change-Id: Ieef6e093ed94a9aa2615a886a08c40eb46a5f4af
Reviewed-on: https://skia-review.googlesource.com/c/skia/+/760876
Reviewed-by: Brian Osman <brianosman@google.com>
Commit-Queue: Michael Ludwig <michaelludwig@google.com>
9 files changed