py: Rename and reorder parameters in emit_make_function/closure.

In preparation for implementing default keyword arguments.
py: Add LOAD_NULL bytecode and use it to simplify function calls.

Adding this bytecode allows to remove 4 others related to
function/method calls with * and ** support.  Will also help with
bytecodes that make functions/closures with default positional and
keyword args.
Merge branch 'master' of github.com:micropython/micropython
Update README.md

Very minor typo
py: Towards default keyword arguments.

These are default arguments after a bare *.
objgenerator: Another obscure case of propagating MP_OBJ_NULL optimization.
objgenerator.throw(GeneratorExit) is not equivalent to .close().

.throw() propagates any exceptions, and .close() swallows them. Yielding
in reponse to .throw(GeneratorExit) is still fatal, and we need to
handle it for .throw() case separately (previously it was handled only
for .close() case).

Obscure corner cases due to test_pep380.py.
mp_resume: Elaborate handling of .throw() for objects which lack it.

In this case, the exception is just re-thrown - the ideas is that object
doesn't handle this exception specially, so it will propagated per Python
semantics.
mp_resume: Dare to pass send_value of NULL.

There was thinkos that either send_value or throw_value is specified, but
there were cases with both. Note that send_value is pushed onto generator's
stack - but that's probably only good, because if we throw exception into
gen, it should not ever use send_value, and that will be just extra "assert".
objtype: Add virtual __name__ attribute.

It's virtual because it's not shown in dir(...). (That's also how CPython
has it).
py: Disable dump_args function call entirely when not debugging.

Yes, I know, a good compiler will optimise this away, but I feel this is
neater.
py: Remove old "run time" functions that were 1 liners.
Merge branch 'master' of github.com:micropython/micropython
py: Fix vstr_init for case that alloc = 0.
tests: Add testcase for multiple inheritance.
py: Fix bug in optimised for .. range.

Don't store final, failing value to the loop variable.  This fix also
makes for .. range a bit more efficient, as it uses less store/load
pairs for the loop variable.
Merge branch 'master' of github.com:micropython/micropython
Merge pull request #404 from jonmills/patch-1

Update README.md
Fix part->port in README.
objtype: Wrap .__name__ handling in MICROPY_CPYTHON_COMPAT.

Because it's runtime reflection feature, not required for many apps.
Rant time:
Python could really use better str() vs repr() distinction, for example,
repr(type) could be "<class 'foo'>" (as it is now), and str(type) just
"foo". But alas, getting straight name requires adhoc attribute.