Dynamically allocate soinfo-structs in linker

Request memory from the system when needed instead of having a fixed
array for soinfo structs. Note that malloc() et al can't be used in
linker, so use mmap() instead.

Change-Id: Ia77e6a835db0f4a0bfeccc4a6610b857459fd437
libm: optimistic pow calling

Call optimized pow optimistically and revert to full range
implementation if we detect an out-of-range input.

Change-Id: I02657c2a254e9796e795a8fcc6ae43e24c9d37b9
Added audit.h from the kernel.

Just followed the recipe in I1ca996541d05b0d5927ab828a6ce49c09877ea01

Change-Id: I5713d9ce5ff62e310a694ecfbe21cad6577bcb4d