Fix timer overflow code.

Teensy doesn't need to worry about overflows since all of
its timers are only 16-bit.

For PWM, the pulse width needs to be able to vary from 0..period+1
(pulse-width == period+1 corresponds to 100% PWM)

I couldn't test the 0xffffffff cases since we can't currently get a
period that big in python. With a prescaler of 0, that corresponds
to a freq of 0.039 (i.e. cycle every 25.56 seconds), and we can't
set that using freq or period.
Okay, so this is trickier than I first thought.  If period is large then it'll lose precision converting to 32-bit float.  This will be a problem if percent=100.0.  Instead, probably need to do something like:
```
if (percent <= 0.0) cmp=0;
else if (percent >= 100.0) cmp=period + 1; // need special case if period is 0xffffffff
else { cmp = percent / 100.0 * (period + 1);