Set primary kernel in manifest and allow preloading.

The primary kernel was previously hard-coded as `vmlinuz` but the
manifest allows more flexibility. If the kernel file for any VM is not
specified, it is assumed that the image has been preloaded into memory.

The loading of the primary and secondaries are becoming increasingly
similar and will continue to do so.

Change-Id: I34f134d8a4d32e8ac92e142d3636902d52ad86ec
diff --git a/inc/hf/manifest.h b/inc/hf/manifest.h
index 57657c7..cdbdd39 100644
--- a/inc/hf/manifest.h
+++ b/inc/hf/manifest.h
@@ -31,10 +31,10 @@
 struct manifest_vm {
 	/* Properties defined for both primary and secondary VMs. */
 	char debug_name[MANIFEST_MAX_STRING_LENGTH];
+	char kernel_filename[MANIFEST_MAX_STRING_LENGTH];
 
 	/* Properties specific to secondary VMs. */
 	struct {
-		char kernel_filename[MANIFEST_MAX_STRING_LENGTH];
 		uint64_t mem_size;
 		spci_vcpu_count_t vcpu_count;
 	} secondary;