objgenerator: Handle default args to generator functions.

Addresses #397.
Merge pull request #399 from pfalcon/gen-defargs

objgenerator: Handle default args to generator functions.
py: Don't wrap necessary function calls in assert.
py: Fix bug in compiler for empty class bases.

Eg class A(): pass would fail an assertion.
py: Add explicit conversion from float to int via int().
py: Add equality test for None object.
objexcept: No more magic messages in exceptions, only exception arguments.

One of the reason for separate "message" (besides still unfulfilled desire to
optimize memory usage) was apparent special handling of exception with
messages by CPython. Well, the message is still just an exception argument,
it just printed specially. Implement that with PRINT_EXC printing format.
objfloat: Missing default: caused incorrect results for unimplemented ops.
objfloat: Make sure that floats always have dot (for C "double" type case).

This matches CPython behavior and hopefully can be treated as general
Python semantics.
compile: Don't try to constant-fold division by zero.

The way it is, just crashes app. And optimizing to
"raise ZeroDivisionError" is probably too much.
objfloat: Quick&dirty implementation of float floor division.

TODO: Likely doesn't match Python semantics for negative numbers.
py: Properly implement divide-by-zero handling.

"1/0" is sacred idiom, the shortest way to break program execution
(sys.exit() is too long).
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.