Port SkBlurImage opts to SkOpts.

+268 -535 lines

I also rearranged the code a little bit to encapsulate itself better,
mostly replacing static helper functions with lambdas.  This also
let me merge the SSE2 and SSE4.1 code paths.

BUG=skia:4117

Review URL: https://codereview.chromium.org/1264103004
diff --git a/src/core/SkOpts.h b/src/core/SkOpts.h
index 9239f8e..0fa12c6 100644
--- a/src/core/SkOpts.h
+++ b/src/core/SkOpts.h
@@ -30,6 +30,9 @@
 
     // May return nullptr if we haven't specialized the given Mode.
     extern SkXfermode* (*create_xfermode)(const ProcCoeff&, SkXfermode::Mode);
+
+    typedef void (*BoxBlur)(const SkPMColor*, int, SkPMColor*, int, int, int, int, int);
+    extern BoxBlur box_blur_xx, box_blur_xy, box_blur_yx;
 }
 
 #endif//SkOpts_DEFINED