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: Support closures with default args.