gc: More verbose debugging

Add more DEBUG_printf statements to trace gc behaviour
Fix problem with ADC reads and multiple channels
stmhal: Toggle LED using ODR ^= pin_mask.
Merge pull request #698 from dhylands/adc-fix

Fix problem with ADC reads and multiple channels
gc: Keep debug statements at beginning of scope where possible
gc: Turn off debugging info again
bare-arm, stmhal: Fix --nostdlib to -nostdlib

-nostdlib is the correct option, gcc recognizes the double dash version
when in link-only mode, but not when compiling.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
bare-arm, stmhal, teensy: Duplicate -nostdlib to CFLAGS

As we are building with -nostdlib gcc features like the stack protector
will fail linking, because the failure handlers are in gcc's internal
libs. Such features are implicitly disabled during compilation when
-nostdlib is used in CFLAGS too.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
Merge pull request #700 from swegener/for-upstream

bare-arm, stmhal: Disable stack protector
Add missing “assert.h” file header inclusion from “nlr.h”
Prefix ARRAY_SIZE with micropython prefix MP_
bench: Add test for function call overhead.

For a trivial operation, calling a function is 5 times slower than doing
operation inline.
bench: Add tests for constructing various containers from iterator.

Both "bound" (like, length known) and "unbound" (length unknown) are tested.
All of list, tuple, bytes, bytesarray offer approximately the same
performance, with "unbound" case being 30 times slower.
bench: Add test for map() vs inplace operations in array-likes.

map() is 5 times slower. That's mostly because of inefficiency of creating
containers from iterables of unknown length (like map()).
bench: Three ways to process a byte buffer.
Merge pull request #707 from eblot/master-v1.1.1-build-fixes

Fix missing declaration of assert()
Replace ARRAY_SIZE with MP_ARRAY_SIZE
Merge pull request #697 from stinos/gc-debug

gc: More verbose debugging
py: Separate MICROPY_PY_BUILTINS_COMPLEX from MICROPY_PY_BUILTINS_FLOAT.

One thing is wanting to do 1 / 2 and get something else but 0, and quite
another - doing rocket science ;-).
tests/float/: Skip tests if "math" module is not available.
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.