objgenerator: close(): Throw instance of GeneratorExit (not type).

To comply with Python semantics and allow use of mp_obj_is_subclass_fast()
for exception matching.
py: Core "yield from" implementation.
py: yield from: Elaborate GeneratorExit (gen.close()) handling.

Handling of GeneratorExit is really peculiar - it subverts normal exception
propagation rules.
tests: Add testcases for yield from.
py: Fix bugs with debugging output.

show_bc now decodes the prelude correctly.  Moved WRITE_FILE stuff from
runtime.c to emitglue.c.

Addresses issue #385.
stmhal: Add TODO's to exti.c; fix delay in lcd.c.
Merge pull request #382 from pfalcon/genexit-inst

objgenerator: close(): Throw instance of GeneratorExit (not type).
Merge branch 'master' of github.com:micropython/micropython
vm: Factor out exception block setup to a macro.

Will be reused in WITH bytecodes.
vm: Make sure that exception triple is <type, instance, traceback>.

This reduntant triple is one of the ugliest parts of Python, which they
chickened out to fix in Python3. We really should consider passing just
as single exception instance (without breaking Python-level APIs of course),
but until we do, let's follow CPython layout.
vm: Implement "with" statement (SETUP_WITH and WITH_CLEANUP bytecodes).
tests: Add "with" statement testcases.
py: Free unique_code slot for outer module.

Partly (very partly!) addresses issue #386.  Most importantly, at the
REPL command line, each invocation does not now lead to increased memory
usage (unless you define a function/lambda).
py: Fix typo printing complex numbers that are purely imaginary.
tests: Remove unimplemented exceptions from testing.
Merge pull request #383 from pfalcon/yield-from

Implement "yield from"
py: Change mp_const_* objects to macros.

Addresses issue #388.
py: Rename old const type objects to mp_type_* for consistency.
unix: Fix ffi.c to compile with latest changes to API.
py: Fix regress with GeneratorExit object becoming truly const.