Implement Polling
This branch was forked from isr_switches
though all the ISR code is not going to be used here and should be removed before being merged in.
We're switching to a polling structure, use this PR to self-doc all the stuff and things.