xen: clear the evtchn_upcall_pending flag in the hypervisor callback

Although we aren't polling the pending bits in the callback itself,
we do need to acknowledge the interrupt so it isn't delivered
immediately again, causing a hard spin.

We rely on the facts that
 (1) after the hypervisor callback is called the SCHEDOP_block
     returns, and we will run evtchn_poll to check the pending bits
 (2) by clearing the evtchn_upcall_pending flag in the callback
     we ensure that future event notifications will trigger another
     interrupt

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
xen: block the domain with a timeout, disable interrupts after

The call to SCHEDOP_block is careful to return immediately if
any events are pending. It also re-enables interrupts before blocking.
When SCHEDOP_block returns, we disable interrupts because we
already know there is work to do.

Configure the domain's timer interrupt before we block.

Finally, rename "block_secs" to "block_nsecs" to show that the
units are _nanoseconds_ (thanks dimosthenis.pediaditakis@cl.cam.ac.uk)

Signed-off-by: David Scott <dave.scott@eu.citrix.com>
xen: unmask the xenstore event channel

This is necessary now that we're using the SCHEDOP_block interface.

Signed-off-by: David Scott <dave.scott@eu.citrix.com>