Add context management library

This patch adds support for a cpu context management library. This
library will be used to:

1. Share pointers to secure and non-secure state cpu contexts between
   runtime services e.g. PSCI and Secure Payload Dispatcher services
2. Set SP_EL3 to a context structure which will be used for
   programming an ERET into a lower EL
3. Provide wrapper functions to save and restore EL3 & EL1
   state. These functions will in turn use the helper functions in
   context.S

Change-Id: I655eeef83dcd2a0c6f2eb2ac23efab866ac83ca0
diff --git a/bl31/bl31_main.c b/bl31/bl31_main.c
index 538280a..fb69718 100644
--- a/bl31/bl31_main.c
+++ b/bl31/bl31_main.c
@@ -38,6 +38,15 @@
 #include <bl_common.h>
 #include <bl31.h>
 #include <runtime_svc.h>
+#include <context_mgmt.h>
+
+/*******************************************************************************
+ * Simple function to initialise all BL31 helper libraries.
+ ******************************************************************************/
+void bl31_lib_init()
+{
+	cm_init();
+}
 
 void bl31_arch_next_el_setup(void);
 
@@ -59,7 +68,8 @@
 #if defined (__GNUC__)
 	printf("BL31 Built : %s, %s\n\r", __TIME__, __DATE__);
 #endif
-
+	/* Initialise helper libraries */
+	bl31_lib_init();
 
 	/* Initialize the runtime services e.g. psci */
 	runtime_svc_init(mpidr);