py: Implement __contains__ special method.
stmhal, file: Implement a,x,+ open modes, seek and tell.

Also now returns correct POSIX errno when an IO operation fails.

Addresses issues #516 and #676.
stmhal, file: Seek to end of file if opened in 'a' mode.
objfun: Factor out mp_setup_code_state() function to set up code_state object.

It needs to be reused for generator functions, too.
objgenerator: First iteration of refactor to use mp_setup_code_state().
objgenerator: Finish refactor to use mp_setup_code_state().
tests: Add testcases for "complicated" args to generator functions.
objfun: Remove no longer used mp_obj_fun_prepare_simple_args().
py: Fix static defn in qstr; include mpconfigport.h with "" (not <>).
py: Make 3 functions static.
py: Rename builtin "io" to "_io".

Functionality we provide in builtin io module is fairly minimal. Some
code, including CPython stdlib, depends on more functionality. So, there's
a choice to either implement it in C, or move it _io, and let implement other
functionality in Python. 2nd choice is pursued. This setup matches CPython
too (_io is builtin, io is Python-level).
py: Make import recognize and load native modules (.pyd or .so files)

Simply check if a .pyd or .so file exists on the Python search path
(if a .py file if not found) and call a function to get a module from it
msvc: Implement LoadDynLib
msvc: Make part of uPy dynamically loadable via import lib

Exports some core functions using exports.def, export constants/data using the
typical dllexport (exporting data using .def file yields multiple copies of data).
Create an import lib next to micropython.exe whcih can be used by modules.
msvc: Add property sheet for building native modules, update README