Add pulse_width_percent to teensy.

While testing pulse_width_ratio, I discovered that trying to do any floating point opertions on the teensy would cause a hang. This is because the teensy CPU has no HW floating point support.

Fix stmhal and teensy print routines to report actual prescaler and period.
Fix teensy build to use soft-float
Add USE_ARDUINO_TOOLCHAIN option to teensy build
True.  So we need a small function to work out the cmp value correctly, taking into account all possible overflows.  It doesn't need to be perfectly accurate, since you can anyway specify the pulse_width value directly if you want accuracy.