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.
unix: Dump default heap size in usage message.
modsocket: Fix uClibc detection.
modgc: Add mem_free()/mem_alloc() methods.

Return free/allocated memory on GC heap.
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.
stmhal: Use stackctrl framework.