Working on timer-pwm

This is what I was working on (just for comparison).

Upon looking at this a bit more, I think that I would move most of the Timer class into a base class, and have TImer, PWM, etc derive from the base class.

This would put common functionality, like management of the callback into the base class, and the calls to HAL_TIM_Base_Init, HAL_TIM_PWM_Init, etc in the derived class.

If I was doing this purely in python, I'd create the following classes:
```
TimerBase -+- Timer
           +- TimerIC
           +- TimerEncoder
           +- TimerOCBase -+- TimerOC
                           +- TimerPWM
                           +- TimerOnePulse
```