Create local C library implementation (1/2)

- This change is split into two separate patches in order to
  simplify the history as interpreted by 'git'. The split is
  between the move/rename and addition of new files.
- Remove dependency on toolchain C library headers and functions in
  order to ensure behavioural compatibility between toolchains.
- Use FreeBSD as reference for C library implementation.
- Do not let GCC use default library include paths.
- Remove unused definitions in modified headers and implementations.
- Move C library files to 'lib/stdlib' and 'include/stdlib'.
- Break std.c functions out into separate files.

Change-Id: I91cddfb3229775f770ad781589670c57d347a154
diff --git a/bl31/bl31.mk b/bl31/bl31.mk
index 4e307e2..fec09b8 100644
--- a/bl31/bl31.mk
+++ b/bl31/bl31.mk
@@ -30,9 +30,8 @@
 
 vpath			%.c	drivers/arm/interconnect/cci-400/ common/ lib/			\
 				drivers/arm/peripherals/pl011 plat/fvp common/psci		\
-				lib/semihosting arch/aarch64/ lib/non-semihosting		\
-				lib/sync/locks/bakery/ drivers/power/ arch/system/gic/		\
-				plat/fvp/aarch64/
+				lib/semihosting arch/aarch64/ lib/stdlib lib/sync/locks/bakery/	\
+				drivers/power/ arch/system/gic/ plat/fvp/aarch64/
 
 vpath			%.S	lib/arch/aarch64 common/psci					\
 				lib/semihosting/aarch64 include/ plat/fvp/${ARCH}		\