py: Make dict use a bit less RAM when iterating; properly del values.

Heap RAM was being allocated to print dicts and do some other types of
iterating.  Now these iterations use 1 word of state on the stack.

Deleting elements from a dict was not allowing the value to be reclaimed
by the GC.  This is now fixed.
py: Add native json printing using existing print framework.

Also add start of ujson module with dumps implemented.  Enabled in unix
and stmhal ports.  Test passes on both.
py: Add 'builtins' module.
lib: Add basic README.
stmhal: Fix bugs in documentation so it compiles.
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.