Added < to button_c, unit test, made button_c totally_ordered.
Restructured to reflect input and output now going into the same lib.