kvm: Add limited instruction event support

Service events from the system instruction event queue
(System::instEventQueue) and the thread-local instruction event queue
(BaseCPU::comInstEventQueue[0]) when exiting from KVM. Note that this
support is still somewhat limited as there is currently no support for
causing a trap at a certain instruction count in the guest.
kvm: Fix a case where the run timers weren't armed properly

There is a possibility that the timespec used to arm a timer becomes
zero if the number of ticks used when arming a timer is close to the
resolution of the timer. Due to the semantics of POSIX timers, this
actually disarms the timer. This changeset fixes this issue by
elminating the rounding error (we always round away from zero now). It
also reuses the minimum number of cycles, which were previously only
used for cycle-based timers, to calculate a more useful resolution.