[CORE] vmm_vcpu_irq: Don't use locks

On ARM32 architecture, the vmm_vcpu_irq_process() function can
take a lot of time because we are spending a lot of time
emulating instructions in arch_vcpu_irq_execute().
While one VCPU has entered this function, other IRQ related
function for this VCPU are unreachable because of the locks.

In particular it is not possible anymore to assert or deassert
asynchronous IRQ that get to this VCPU and the CPU core that try
to do so will have to loop on the lock primitive.

So the locks in vmm_vcpu_irq.c are inducing a lot of contention
when you try to run a SMP guest on ARM32 architecture.

This proposal is to remove much of this contention by removing
the locks and using atomic operations instead.

If locking is required, it needs to be done in the arch
specific function (like here on ARM32VE).

Signed-off-by: Jean-Christophe DUBOIS <jcd@tribudubois.net>