Updated teensy to build.

Refactored some stmhal files which are shared with teensy.
Add MICROPY_HW_MICRO_NAME to boards config
Added hexfile target
Fix asser_func warning/error

* Add while(1) to assert_func to avoid func returns warning
* Define a weak attr in mpconfig.h
Add NORETURN to __fatal_error
windows: Enable GC and implement bss start and end symbols

The pointers to the bss section are acquired in init.c()
by inspecting the PE header. Works for msvc and mingw.
gc: Use simple cast instead of union to silence compiler
py: Implement delete_attr in native emitter.
unix: Dump default heap size in usage message.
modsocket: Fix uClibc detection.
Merge pull request #690 from stinos/msvc-gc

msvc: Enable GC
Merge branch 'master' of github.com:micropython/micropython
modgc: Add mem_free()/mem_alloc() methods.

Return free/allocated memory on GC heap.
unix: Remove unused CTRL-D definition
modstruct: Fix alignment handling issues.

Also, factor out mp_binary_get_int() function.
travis: Use unified diffs for failed tests.
binary: machine_uint_t vs uint dichotomy starts doing real damage.
Use mp_const_none to initialize mapper and map_dict
Merge pull request #719 from dhylands/pin_fix

Use mp_const_none to initialize mapper and map_dict (fix #701)
py: Add portable framework to query/check C stack usage.

Such mechanism is important to get stable Python functioning, because Python
function calling is handled with C stack. The idea is to sprinkle
STACK_CHECK() calls in places where there can be C recursion.

TODO: Add more STACK_CHECK()'s.