Change the implementation of sincos and sincosf.

Before that sincos and sincosf had been implemented as
consecutive calls of sin and cos which led GCC to optimize
these calls into sincos/sincosf back again. To avoid that
sincos.c had been forced to be compiled with "O0". This
implementation prevents the infinite recursion; It is created as
a mixture of src/s_sin.c, src/s_cos.c and src/s_sinf.c, src/s_cosf.c
respectively.

Change-Id: I0f7a537a0d3f8f61cb28783315f30697d9d641a9
Signed-off-by: Alexander Ivchenko <alexander.ivchenko@intel.com>
libc: Replaced O(n^2) strstr with O(n)

Took it from glibc.

Change-Id: Ide8866a8db81c3df99ebae65a0c35fe1a34679ce
libc: Update strlen
libc: Update makefile with new CPU flag
libc: Pick some of Linaro's string optimizaitons