Interrupt support

This change introduces simulated interrupt support. At this time the software stack does not support
hardware interrupts. This change simulates the interrupts by polling.
"A value of zero causes the thread to relinquish the remainder of its time slice to any other thread of equal priority that is ready to run."

What kind of a performance hit do we take for this implementation? Could we instead check for a flag set by whatever calls <code>QueueUserAPC()</code>?