external/skia: Add QC hooks

Add QC hooks blittering functions

Change-Id: I9d72549ec23b9f5ed69e8337734b32cac165c83d
(cherry picked from commit fdd659a5b40c3d5a084ab16178a5913e0793ef6b)
(cherry picked from commit 33db2b26228edcef59cb86d865d5d3009e619e5a)
(cherry picked from commit d1efd8f20f630959c70bac98ccd85861d23017b5)
SkBlitter_RGB16: Add device-specific optimization hooks

Change-Id: I18bf4825669fef6fcc10e5d48271e7ea9abb3ed6
(cherry picked from commit 5d5e3dd98e15a5d25fcddf41f00dc5989942d094)
(cherry picked from commit afbd633b035a8b8f6017f52f6ad398a076aee841)
(cherry picked from commit 814fe785689f0b018283fbc2b02a2d230f0221cb)
Skia: Add NEON intrinsic D32_A8_Black

If NEON support is indiciated via __ARM_HAVE_NEON flag then use
an optimized NEON intrinsics version of the D32_A8_Black masking
function.

Change-Id: I78c6dd18cdc0437907ab330ba1f19adb56b8717a
(cherry picked from commit b50f52460e78c63949b5281f7e22d674afac8683)
(cherry picked from commit a41a18bc008ef0417d5df219444d908b53fe33f7)
Revert "Skia: Add NEON intrinsic D32_A8_Black"

This reverts commit b50f52460e78c63949b5281f7e22d674afac8683

Change-Id: I50b8fec8c786af4d523c7c912172e1332ca2b899
(cherry picked from commit beebc4ba6ef0e693bd0bf126b86b0602cf81bfaa)
(cherry picked from commit 096c3652c74644007dd8cdefa9a7e00266bc8dd4)
Skia: Add NEON intrinsic D32_A8_Black and D32_A8_Opaque

If NEON support is indiciated via __ARM_HAVE_NEON flag then use
an optimized NEON intrinsics version of the D32_A8_Black and D32_A8_Opaque
masking function.

Change-Id: I20d2bf15515d960b73e635784a0daf29302e1f12
SkLanguage and SkPaintOptionsAndroid optimization

(1) Global linked list to manage SkLanguage and SkPaintOptionsAndroid
    objects
(2) All copy constructor overheads associated with above classes are
    changed to simple pointer assignment
(3) All string related operations in SkLanguage class are replaced with
    simple pointer manipulation. Also saving on string allocations.
(4) SkLangList and SkPaintOptionsAndroidList are 2 new classes created
    to manage the global linked list
(5) SkLanguages and SkPaintOptionsAndroids are 2 new singleton classes
    created to work with the global linked list class (See 4)

Change-Id: Id1d8357569e79f7e3da403b56a08db937afb07eb
SkDraw::drawRect optimization

New class in SkDeviceLooper.cpp falls in in the critical code path of
SkDraw::drawRect().  This new class SkDeviceLooper does nothing except
for bound checking. It copies the modified rect bounds into new pointer
variables and returns them back "if needed". The additional overhead of
creating an object of SkDeviceLooper class and calling member functions
reduces performance.  This patch creates a pre-check condition and if
it succeeds we know for sure SkDeviceLooper won't change the rect
bounds. Under this condition, we avoid using the SkDeviceLooper class.

Change-Id: I11fa13ace8d50d52069e1780a14874e4c34133f2
external/skia Hooks for optimized blitting

Add in hooks to allow for overriding blitting operations with
optimized functions.

Change-Id: If38010a69d9fe7cf412d91c277db666f2fd7df34
Introduce USER_HAS_PRIVATE_CFX_REPOS