Feature/irq

Interrupts seem to be working fine. I've removed the pin and state arguments to the IRQEvent func as they weren't necessary. We know the pin by virtue of the object we are using, and we can get the state by calling for it explicitly when needed.

@davecheney please review.