[ARM] vgic: Improve locking for distributor state

The VGIC VCPU context of a VCPU will only be accessed when the VCPU
is current VCPU hence avoid locking for __vgic_save_vcpu_hwstate()
and __vgic_restore_vcpu_hwstate().

On the other hand, the VGIC distributor context needs to be protected
since a SMP Guest will have multiple VCPUs (running on different host
CPUs) accessing common distributor context hence we rename our VGIC
state lock to VGIC distributor lock.

Further, VGIC distributor lock should not be held when calling someother
function elsewhere. This will avoid potential deadlocks because the external
function that is being called might use spinlock or even indirectly call
VGIC code via IPIs.

This patch does the above described improvements to the VGIC emulator.

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