Implement a leaner printf for Trusted Firmware

This patch implements a "tf_printf" which supports only the commonly
used format specifiers in Trusted Firmware, which uses a lot less
stack space than the stdlib printf function.

Fixes ARM-software/tf-issues#116

Change-Id: I7dfa1944f4c1e634b3e2d571f49afe02d109a351
diff --git a/common/bl_common.c b/common/bl_common.c
index d4bde51..60b63f1 100644
--- a/common/bl_common.c
+++ b/common/bl_common.c
@@ -148,12 +148,12 @@
 			   const meminfo_t *mem_layout)
 {
 #if DEBUG
-	printf("Trying to load image at address 0x%lx, size = 0x%lx\r\n",
+	tf_printf("Trying to load image at address 0x%lx, size = 0x%lx\r\n",
 		image_load_addr, image_size);
-	printf("Current memory layout:\r\n");
-	printf("  total region = [0x%lx, 0x%lx]\r\n", mem_layout->total_base,
+	tf_printf("Current memory layout:\r\n");
+	tf_printf("  total region = [0x%lx, 0x%lx]\r\n", mem_layout->total_base,
 			mem_layout->total_base + mem_layout->total_size);
-	printf("  free region = [0x%lx, 0x%lx]\r\n", mem_layout->free_base,
+	tf_printf("  free region = [0x%lx, 0x%lx]\r\n", mem_layout->free_base,
 			mem_layout->free_base + mem_layout->free_size);
 #endif
 }