Version 3 of timer: Support PWM, OC, and IC

This is my version 2 (not tested).

I verified it compiles.

It still needs the pin= support added.

It has PWM and OC support (adding IC and Encoder would be striaght forward)
> However, now the PWM/OC/IC is actually a TimerChannel attribute, I could rename counter_mode back to mode.
> 
> We could also shorten the constants to just UP/DOWN/CENTER

Yes and yes.





> it should probably be a positional argument

Yes.