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).