py: enumerate(): Add NotImplementedError for kwargs.

Addresses #577.
py: bytes(), str(): Add NotImplementedError for kwargs.

Addresses #567.
py: Add keyword arg support to enumerate constructor.

Need to have a policy as to how far we go adding keyword support to
built ins.  It's nice to have, and gets better CPython compatibility,
but hurts the micro nature of uPy.

Addresses issue #577.
Merge branch 'master' of https://github.com/micropython/micropython

Conflicts:
	py/argcheck.c
	py/objenumerate.c
	py/runtime.h
py, parser: Add commented-out code to discard doc strings.

Doesn't help with RAM reduction because doc strings are interned as soon
as they are encountered, which is too soon to do any optimisations on
them.
stream: Add compliant handling of non-blocking read()/write().

In case of empty non-blocking read()/write(), both return None. read()
cannot return 0, as that means EOF, so returns another value, and then
write() just follows. This is still pretty unexpected, and typical
"if not len:" check would treat this as EOF. Well, non-blocking files
require special handling!

This also kind of makes it depending on POSIX, but well, anything else
should emulate POSIX anyway ;-).
stream: Add compliant handling of non-blocking readall().
stream: Use standard name of DEFAULT_BUFFER_SIZE.
unix modsocket: Add comments re: recv() vs read(), etc. semantics.
stream: Make non-blcoking stream support configurable.

Enable only on unix. To avoid unpleasant surprises with error codes.