Add MICROPY_HW_MICRO_NAME to boards config
py: Include mpconfig.h before all other includes.

It defines types used by all other headers.

Fixes #691.
py: Support arm and thumb ARM ISAs, in addition to thumb2.

These changes were tested with QEMU, and by few people of real hardware.
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
unix: uClibc doesn't like NULL as a buffer arg to realpath().

So, allocate one explicitly.
modsocket: Add call to freeaddrinfo().
modsocket: Workaround uClibc issue with numeric port for getaddrinfo().

It sucks to workaround this on uPy side, but upgrading not upgradable
embedded systems sucks even more.
unix: Don't error out on #warning directive.
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