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/debug.c b/common/debug.c
index 0f59ed5..be54f5d 100644
--- a/common/debug.c
+++ b/common/debug.c
@@ -29,6 +29,7 @@
  */
 #include <console.h>
 #include <debug.h>
+#include <stdarg.h>
 #include <stdio.h>
 
 /******************************************************************
@@ -73,7 +74,7 @@
 #if DEBUG
 void __dead2 do_panic(const char *file, int line)
 {
-		printf("PANIC in file: %s line: %d\n", file, line);
+		tf_printf("PANIC in file: %s line: %d\n", file, line);
 		while (1)
 			;
 }
@@ -87,7 +88,7 @@
 	/* x30 reports the next eligible instruction whereas we want the
 	 * place where panic() is invoked. Hence decrement by 4.
 	 */
-	printf("PANIC in PC location 0x%016X\n", pc_reg - 0x4);
+	tf_printf("PANIC in PC location 0x%016X\n", pc_reg - 0x4);
 	while (1)
 		;