Pin.readPulse() functionality

Basically does exactly what the title says. It implements readPulse functionality.

Check out `test/test_read_pulse.js` and mess around with the test to see if it's all good.

Comment/critique to your hearts desire.
You'll have to pull out this IRQ so it can also be used with Neopixels (and anything else we add in the future). With other IRQs [we've been adding them to `main.c`](https://github.com/tessel/firmware/blob/master/src/main.c#L64-L68) and calling application specific functions from there. @kevinmehall is that what you want to do with this as well?