refactor: boot ordered vcpu list

Refactor vm_update_boot and vm_get_first_boot to vcpu_update_boot and
vcpu_get_boot_vcpu. Moved the functions from vm to vcpu module and
adapted to use the vcpu interface functions.
Change from building a boot ordered VM list to a vCPU list.

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: If29b785d76fef3a94e752705abc003acb5f3cc66
diff --git a/src/arch/aarch64/hypervisor/handler.c b/src/arch/aarch64/hypervisor/handler.c
index a6fe272..2b02f1b 100644
--- a/src/arch/aarch64/hypervisor/handler.c
+++ b/src/arch/aarch64/hypervisor/handler.c
@@ -348,12 +348,12 @@
 
 	switch (fwk_msg_func_id) {
 	case SPMD_FWK_MSG_PSCI: {
+		struct vcpu *boot_vcpu = vcpu_get_boot_vcpu();
+		struct vm *vm = boot_vcpu->vm;
+		struct vcpu *vcpu = vm_get_vcpu(vm, vcpu_index(current));
+
 		switch (args->arg3) {
 		case PSCI_CPU_OFF: {
-			struct vm *vm = vm_get_first_boot();
-			struct vcpu *vcpu =
-				vm_get_vcpu(vm, vcpu_index(current));
-
 			/*
 			 * TODO: the PM event reached the SPMC. In a later
 			 * iteration, the PM event can be passed to the SP by