[CORE] vmm_vcpu_irq: Don't update execute_pending from vmm_vcpu_irq_deassert()

The vmm_vcpu_irq_assert() and vmm_vcpu_irq_deassert() are called out-of-order
and asynchronously whereas we only execute VCPU irqs that are asserted.

As per above rationale, we should not update execute_pending count from the
vmm_vcpu_irq_deassert() instead we should only reset the VCPU irq assert state.

If we do update execute_pending from vmm_vcpu_irq_deassert() (like the current
implementation) then it can happen that a VCPU irq X is asserted while we are
about to deassert VCPU irq Y (i.e. execute_pending == 1). In this situation,
if VCPU irq Y is deasserted before VCPU irq X is executed then execute_pending
count would become zero and VCPU irq X will not be executed till someone calls
vmm_vcpu_irq_assert(). This situation is not hypothetical and does occur quite
often on Raspberry-Pi and BeagleBoard-xM with latest code hence we have this
patch to fix it.

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