Add Timer support (PWM, OC, IC) for stmhal and teensy
stmhal: Add pulse_width_ratio to timer channel object.

This allows to set the pulse width (for PWM mode) as a ratio relative to
the period of the timer.  Eg, 0.5 is a 50% duty cycle.  You can set the
ratio in the channel init, or using channel.pulse_width_ratio; the
latter can also read the pulse width as a ratio.
Merge branch 'dhylands-timer-pwm2'
extmod: Add loads to ujson module.
extmod, ujson: Slight reduction in code size.
extmod, ujson: Add \uxxxx parsing in json strings.
extmod, ujson: Add test and comment for loads.
windows: Enable input(), sys.maxsize(), ujson module, emergency exception buf, os module
Fix unix/Makefile to build on OSX
Force OSX to compile with clang even if gcc is available
Change LDFLAGS syntax to be compatible with clang
Fix questionable syntax on line 90
Remove extraneous tab character
Incorporate change in assignment logic suggested by dhylands
stmhal: Initialise stack pointer correctly.

Stack is full descending and must be 8-byte aligned.  It must start off
pointing to just above the last byte of RAM.

Previously, stack started pointed to last byte of RAM (eg 0x2001ffff)
and so was not 8-byte aligned.  This caused a bug in combination with
alloca.

This patch also updates some debug printing code.

Addresses issue #872 (among many other undiscovered issues).
Clean up logical flow for setting LDFLAGS to build for Linux and OSX
Add more specific comments describing what is going on.
Merge pull request #871 from blmorris/osx_build_fix

Fix unix/Makefile to build on OSX
Merge pull request #869 from stinos/windows-up

windows: Enable input(), sys.maxsize(), ujson module, emergency exceptio...
tests: Fix uctypes tests to run on 64bit arch; enable more native tests.
py: Make native emitter handle multi-compare and not/is not/not in ops.
py: Free non-interned strings in the parser when not needed.

mp_parse_node_free now frees the memory associated with non-interned
strings.  And the parser calls mp_parse_node_free when discarding a
non-used node (such as a doc string).

Also, the compiler now frees the parse tree explicitly just before it
exits (as opposed to relying on the caller to do this).

Addresses issue #708 as best we can.
Add pulse_width_percent to teensy.

Fix stmhal and teensy print routines to report actual prescaler an period.
Fix teensy build to use soft-float
Add USE_ARDUINO_TOOLCHAIN option to teensy build
Merge pull request #868 from dhylands/fix-teensy-float

Add pulse_width_percent to teensy.
stmhal, timer: Factor code to compute PWM percent; improve 32bit case.

Also do the same for teensy timer code.