Merge pull request #198 from pfalcon/expose-memstat

Expose memory stats functions via "micropython" module.
py: Put micropython module init code in builtinmp.c.
mp_obj_get_qstr(): Handle MP_OBJ_QSTR.
mp_identity(): Add generic identity function.

Useful as getiter method for objects which are their own iterators, etc.
stream: Add generic unbuffered iternext method.

Uses stream_unbuffered_readline underline.
unix io.FileIO: Add iteration support.

A file cannot be iterated concurrently, so we make io.FileIO its own
iterator.
stream_read(): Shrink memory block to actual read size.
unix socket: Add send() and recv() methods.

CPython _socket actually have only those and doesn't provide stream
interface (higher-level CPython "socket" what adds this).

+516 bytes x86.
Don't preimport socket module.
Add dummy bytes() constructor.

Currently, MicroPython strings are mix between CPython byte and unicode
strings. So, conversion is null so far. This dummy implementation is
intended for compatibility with CPython (so, same code can run on both).
socket-client, socket-server examples now run on both Micro- and C-Python.
Add MP_OBJ_TYPE(o) accessor.

Should not be overused, but when needed, it's needed.
rt_is_true(): Start with testing for (expected) boolean values.
Add rt_resolve_method() which doesn't throw exception if method not found.

Unlike previosuly existing rt_load_method().