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
py: Make import recognize and load native modules (.pyd or .so files)

Simply check if a .pyd or .so file exists on the Python search path
(if a .py file if not found) and call a function to get a module from it.
Implement this LoadDynLib function for msvc.
msvc: Build seperate micropython dll and executable

- export some core functions using exports.def, export constants/data using the
typical dllexport (exporting data using .def file yields multiple copies of data).
- rename micropython project to micropythoncore and have it produce a dll + impor lib
- add new micropython exe project (which just calls the exported main from the dll)
- add property sheet for external modules