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.
If we ever make Arduino a precompiled header, then this would be a candidate. having static headers in a shared header like this is A Good thing(tm)