added debouncing to the button library, at a cost of -1 bytes of ram