feat: power management messages subscription

Move PE cold and warm boot code paths to arch and platform specific
functions. Hypervisor and SPMC implement different flows for PE power
up/down by two flavors of the plat_psci_cpu_resume function.
SPMC leverages vcpu_secondary_reset_and_start when notified by SPMD of a
PE being brought out of reset.
Consume the power management field in partition manifests. For now it
permits entering a partition after warm boot (or restricting it e.g. for
UP SP partitions when queried). If the power management field is omitted
in the manifest, then it defaults to entering the first partition vCPU
on warm boots (legacy behavior maintained for MP SPs).
Provide an early normal world exit path for the SPMC when a partition
doesn't require handling warm reboot events (api_switch_to_other_world
then other_world_exit). Other minor refactorings:
plat_ffa_sri_init is only called by the SPMC on a PE boot up (the
Hypervisor shouldn't have to call it as done currently).

Signed-off-by: Olivier Deprez <olivier.deprez@arm.com>
Change-Id: I144341cd542387214697dfc4ae2f487dd260fe7b
diff --git a/inc/hf/arch/cpu.h b/inc/hf/arch/cpu.h
index 135b222..65ec8d5 100644
--- a/inc/hf/arch/cpu.h
+++ b/inc/hf/arch/cpu.h
@@ -65,4 +65,6 @@
 /**
  * Initialize and reset CPU-wide register values.
  */
-void arch_cpu_init(struct cpu *c, ipaddr_t entry_point);
+void arch_cpu_init(struct cpu *c);
+
+struct vcpu *arch_vcpu_resume(struct cpu *c);