Squashed Linaro Optimizations DO NOT MERGE

These are untested, but I'll push here for review for now.  Haven't had time to build

Squashed commit of the following:

commit fba6d1d911198a4b085776111c53d15a98dda236
Author: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Mon Nov 4 23:58:55 2013 +0100

    Don't include memchr.c twice

    Change-Id: I663a934dd4c8e7e87e8d018c878b3c4d04b0b914
    Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>

commit 4418df9ceba9d0d3b14b3116c15dfceb06143975
Author: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Sat Nov 2 19:15:07 2013 +0100

    Fix build after 4.4 merge

    Change-Id: I9b5eb314746ebadfced2f4a055a8e1306ca9e4ec
    Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>

commit 396db4cdea5cbbfa7cb81dc54f559b6e818a22d0
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Wed Sep 18 23:37:00 2013 +0200

    Fix mismatch between declaration and forward declaration

    KernelArgumentBlock is defined as a class in KernelArgumentBlock.h, but
    forward declarations refer to it as a struct.

    While this is essentially the same, the mismatch causes a compiler
    warning in clang (and may cause warnings in future versions of gcc) in
    code that is supposed to be compiled with -Werror.

    Change-Id: I4ba49d364c44d0a42c276aff3a8098300dbdcdf0
    Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

commit 8d3107d91a9085d9df8806291991826eb34e7112
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Wed Sep 18 23:29:08 2013 +0200

    Declare __page_shift and __page_size with C linkage

    __page_shift and __page_size are defined in asm/page.h with
    C linkage - their implementation needs to use the same linkage.

    The different linkage types cause a compiler error with clang.
    Fixing them seems to be a good idea regardless of the compiler.

    Change-Id: I35ed66a08989ced1db422eb03e4d154a5d6b5bda
    Signed-off-by: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>

commit cc06f00d398953d13535d37876f2f97808037356
Author: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Tue Sep 3 12:36:24 2013 +0200

    Add optimized sincos() function (ported from linaro_android_4.2.2)

    Change-Id: I77f84d7ebc2dd7d5aa352b108b05e2651b5605c1
    Signed-off-by: Bernhard Rosenkränzer <Bernhard.Rosenkranzer@linaro.org>

commit 39df37b21e9099ae519022b29ce60652332e039a
Author: Amit Pundir <amit.pundir@linaro.org>
Date:   Thu Jul 25 22:33:15 2013 +0530

    revert cortex string optimization routines for now

    Change-Id: I410bdef93efd51277b494bde0300a01c49e926f7
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit b7b8f4f1510147b83e5f023235733c8a0042d82a
Author: Amit Pundir <amit.pundir@linaro.org>
Date:   Thu Jul 25 21:30:02 2013 +0530

    remove typos and multiple declarations

    Change-Id: Iff32874c2f801519b57f19a3cc1c2c76b7c7f6fa
    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit 9cc789a7bd1b652df96a4f7514f09e1262c21104
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Thu Jul 25 10:56:21 2013 +0530

    bionic: Add Cortex-A15 optimized version of memcpy

    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit

    Add the memcpy implementation from cortex-strings -- faster than
    the current implementation on both A9 and A15.

    To be investigated: Breaks saving pictures from the camera in
    Galaxy Nexus builds

    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit 2b55c07ce2da8a36ee0c51df2d794204921c7971
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Thu Jul 25 10:52:26 2013 +0530

    Make use of new memcpy, tweak settings

    MIME-Version: 1.0
    Content-Type: text/plain; charset=UTF-8
    Content-Transfer-Encoding: 8bit

    The new memcpy() is slightly faster than the cortex-strings version,
    and fixes the Galaxy Nexus camera issue.

    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit fa5cdecdb0255cf9ac96bc3a975db8258a14cdc6
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Thu Jul 25 10:42:38 2013 +0530

    Add workarounds for current compilers

    With current compilers, we're getting "this function cannot be inlined"
    errors on vsnprintf and strlcpy because the always_inline attribute is
    set.

    Before marking this a "fix" instead of a "workaround", we should figure
    out why the functions can't be inlined.

    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit 2f7e86f76125ab16706744e5d41ba402f1fc64d2
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Thu Jul 25 10:35:17 2013 +0530

    bionic: Add ARMv7 optimized string handling routines

    Add ARMv7 - and especially Cortex-A9 - optimized string handling
    routines based on the versions found in the cortex-strings library.

    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

commit d201641bcd7e94feae980718d75e7ddd77dd3a23
Author: ST-Ericsson <void@stericsson.com>
Date:   Mon Dec 12 12:59:47 2011 +0100

    bionic:Add new header files for graphics

    The header files "hwmem.h" and "b2r2_blt.h" are needed
    by the ST-Ericsson graphics implementation.

    Signed-off-by: Patrik Ryd <patrik.ryd@stericsson.com>

commit 302ddbab831607af49ef3d9a1c398cb2150e0850
Author: Bernhard Rosenkraenzer <Bernhard.Rosenkranzer@linaro.org>
Date:   Thu Jul 25 10:10:44 2013 +0530

    bionic: Fix aliasing violations

    This makes bionic compile with compilers enforcing
    strict adherence to aliasing rules (e.g. gcc 4.6+
    with -Wstrict-aliasing=2 -Werror=strict-aliasing).

    Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

Change-Id: I5552bfb70d54f7f7dbfdae2bd7215be3482204af