unix: Allow to override compiler warning options without touching the rest.

Some people want to enable even more warnings. Let them do it without putting
burden on everyone. Some people vice versa think that current settings should
be relaxed. In this regard, -Werror is the most problematic, it disallows to
use #warning directive, and disallows to pass configuration settings on make
command lines. Again, until decided how to deal with these globally, allow to
work around these problems locally.
unix: Group CFLAGS related stuff together.
unix: Refactor order file munging fo MacOSX.
unix: Add CFLAGS_EXTRA & LDFLAGS_EXTRA for command line usage.

The idea is that it should be possible to pass any additional params for
experimentation without need to patch sources (and without need to deviate
from or repeat baseline options).
unix: Allow to override MICROPY_GCREGS_SETJMP from cmdline.
makefile: Pass STRIPFLAGS_EXTRA to strip.

Expected to be set on command line, with the idea being that for different
targets, there're different smartass ABIs which strive to put unneeded
sections into executables, etc., so let people have flexible way to
strip that.

The option name is similar to previously introduced CLFAGS_EXTRA &
LDFLAGS_EXTRA.
mkrules.mk: Pass $(COPT) to link stage.

In generalize case, optimization options should be passed to all stages of
the build process.
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.
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.