Add macro SK_SUPPORT_LEGACY_SETCONFIG

Change-Id: I7ea50c55bb0fa64e966741926195135d9c1bac00
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: Ib17381be6bae046e2c6e1f1c6a1d1c4707c20c32
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
external/skia: Add QC hooks

Add QC hooks blittering functions

Change-Id: I9d72549ec23b9f5ed69e8337734b32cac165c83d
Skia: Fix special case in D32_A8_Opaque and _Black

Neon optimization implemented for D32_A8_Opaque and D32_A8_Black
is not using the right mask for width>=2 and width<4 case. This
is fixed in this patch by handling 4 different cases: width >=8,
4<=width<7, 2<=width<4, and residual case.

Change-Id: I20bf1cc28eac08402d4133aac663ebfc393edbe0
skia: Update QC-PERF board flag to TARGET_HAVE_QC_PERF

  * Some targets will set QCOM_HARDWARE but won't have these libs.

Change-Id: I04575a14327edd0985bef71a376f8cb998740fa5
skia: add compat SkBitmap::setConfig symbol

Required for older Samsung libtvout and HTC camera.tegra.

Change-Id: Icaae6ca01556553e57c3a194427093c59e0c5f65
skia: add compat SkImageDecoder::DecodeStream symbol

Required for older HTC camera.tegra.

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

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

Change-Id: If38010a69d9fe7cf412d91c277db666f2fd7df34
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)
NEON optimized blitter S32_Opaque_D32_filter_DX

Re-work for latest code base as the -Os compiler options is added.
Overwrite the optimization level at function level.

Change-Id: I732fea7f02f775a4b06884460dea2887d4108820
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: Update QC hooks

Cleaner way to use weak functions for hooks

Change-Id: Ic9ff68b6f406323d464433fb43aef151c07c45e9