SPCI: Introduce SPCI_MSG_SEND.

Morph the vmapi service HF_MAILBOX_SEND onto SPCI_MSG_SEND.
The current SPCI_MSG_SEND only allows for implementation defined
messages to be exchanged between VMs.

The new SPCI service returns SPCI_SUCCESS if message is delivered or one
of the following error codes:
        SPCI_INVALID_PARAMETER: one of the parameters in the header does
        not conform;
        SPCI_BUSY: the mailbox was full or the target VM does not exist.

Adapted the tests to this new service.
Added tests specific to spci_message_init and spci_msg_send.

Change-Id: I55adfe68502ddc7bf864432f3e567b6cfe785f92
diff --git a/inc/hf/vm.h b/inc/hf/vm.h
index b3b7492..069a265 100644
--- a/inc/hf/vm.h
+++ b/inc/hf/vm.h
@@ -22,6 +22,7 @@
 #include "hf/list.h"
 #include "hf/mm.h"
 #include "hf/mpool.h"
+#include "hf/spci.h"
 
 enum mailbox_state {
 	/** There is no message in the mailbox. */
@@ -55,8 +56,8 @@
 	enum mailbox_state state;
 	uint32_t recv_from_id;
 	int16_t recv_bytes;
-	void *recv;
-	const void *send;
+	struct spci_message *recv;
+	const struct spci_message *send;
 
 	/**
 	 * List of wait_entry structs representing VMs that want to be notified