explanation of GPIO
Remove to_gpio methods from Direction and Edge, and inline them in
the only place they are called.
Blink-button program that uses tasks to sample the button independently
of the blink timer