tests: Add argument to allow specifying which directories to test
Add a comma to make the .csv look proper in github
vm: Detect stack underflow in addition to overflow.
vm: Don't unconditionally allocate state on stack, do that only if needed.

This makes sure that only as much stack allocated as actually used, reducing
stack usage for each Python function call.
vm: Factor out structure with code execution state and pass it around.

This improves stack usage in callers to mp_execute_bytecode2, and is step
forward towards unifying execution interface for function and generators
(which is important because generators don't even support full forms
of arguments passing (keywords, etc.)).
tests: Add another test for break-from-for-loop.
py: Fix stack underflow with optimised for loop.
Merge pull request #632 from stinos/tests-dir-argument

tests: Add argument to allow specifying which directories to test
tests: Change --test_dirs to --test-dirs.
Merge pull request #643 from dhylands/fix-af-csv

Add a comma to make the .csv look proper in github
tests: Add feature test for when heap allocation is disabled.
Merge branch 'master' of github.com:micropython/micropython
LED Fix
Add switch test example
Merge branch 'vm-alloca' of github.com:pfalcon/micropython into pfalcon-vm-alloca

Conflicts:
	py/vm.c

Fixed stack underflow check.  Use UINT_FMT/INT_FMT where necessary.
Specify maximum VM-stack byte size by multiple of machine word size, so
that on 64 bit machines it has same functionality as 32 bit.
Merge branch 'pfalcon-vm-alloca'
py, vm: Replace save_ip, save_sp with code_state->{ip, sp}.

This may seem a bit of a risky change, in that it may introduce crazy
bugs with respect to volatile variables in the VM loop.  But, I think it
should be fine: code_state points to some external memory, so the
compiler should always read/write to that memory when accessing the
ip/sp variables (ie not put them in registers).

Anyway, it passes all tests and improves on all efficiency fronts: about
2-4% faster (64-bit unix), 16 bytes less stack space per call (64-bit
unix) and slightly less executable size (unix and stmhal).

The reason it's more efficient is save_ip and save_sp were volatile
variables, so were anyway stored on the stack (in memory, not regs).
Thus converting them to code_state->{ip, sp} doesn't cost an extra
memory dereference (except maybe to get code_state, but that can be put
in a register and then made more efficient for other uses of it).
Rename bultins config variables to MICROPY_PY_BUILTINS_*.

This renames:
MICROPY_PY_FROZENSET -> MICROPY_PY_BUILTINS_FROZENSET
MICROPY_PY_PROPERTY -> MICROPY_PY_BUILTINS_PROPERTY
MICROPY_PY_SLICE -> MICROPY_PY_BUILTINS_SLICE
MICROPY_ENABLE_FLOAT -> MICROPY_PY_BUILTINS_FLOAT

See issue #35 for discussion.
py: Add option to disable set() object (enabled by default).
py: Fix configurability of builtin slice.