more work toward encoder support

*added more encoder code
*button debouncing should now be much faster, as the algorithm now
debounces entire column at once instead of each button individually
*faster mux read code