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.
`var err` or you creating a global.

Up for debate whether you want to pass this exception for the callback or throw it here (this also applies to my suggestions above). My take is that exceptions that are 100% an error in the calling code and will never work should be thrown immediately so the user gets a traceback with the line number at the top, while runtime failure conditions that are detected synchronously should be passed to the callback so the programmer doesn't need to duplicate error handling for sync/async errors. Don't know if there's an established convention for this.