[ARM] Add PSCI emulation for all types ARM Guests

This patch adds emulation of power state and coordination interface
(PSCI) for arm32, arm32ve, and arm64.

The PSCI standard is defined by ARM Ltd. Using the PSCI interface
Non-secured software or Guest OSes can communicate with Secure Monitor
software or Hypervisor.

For detailed info on PSCI interface visit:
http://infocenter.arm.com/help/topic/com.arm.doc.den0022b/index.html

The calling convention for PSCI operations is documented at:
http://infocenter.arm.com/help/topic/com.arm.doc.den0028a/index.html

Currently, we only emulate CPU_OFF and CPU_ON operations. In future,
we will add emulation for more PSCI operations such as SYSTEM_OFF and
SYSTEM_RESET.

A Guest OS can use HVC or SMC instruction to do PSCI operation on
arm32ve or arm64 but on arm32 port we don't have HSV instruction hence
Guest OS must use SMC instruction (which will be replaced by hypercall
instructions on arm32 port).

Signed-off-by: Anup Patel <anup@brainfault.org>