Implement IR transmission and misc improvements.

-Implement outgoing, asynchronous IR transmission.
-Improve naming conventions for typedef'd structs.
-Clean up main.h
-Implement basic random seed logic.
Implement backend IR reception.