[READY] IR API Update

* Adds a test suite.
* Removes `setListening` function from API because it was error prone when used with EventEmitter.
* Adds ability to update IR Firmware using `avr-isp`.
* Updates API to not be in terms of 50uS ticks, but rather in terms of actual uS