stream: Convert .ioctl() to take fixed number of args.

This is more efficient, as allows to use register calling convention.
If needed, a structure pointer can be passed as argument to pass more
data.
stream: Implement seek operation support via ioctl, wrapped in generic method.

Also, implement for unix port.
tests: Add test for file.seek().
stmhal: Switch to file.seek() implementation using stream ioctl.
ports: Define mp_off_t.
py: Make stream seek correctly check for ioctl fn; add seek for textio.
README: Update link to logo.
Set PYTHONIOENCODING='utf-8' so that unicode tests can pass on CPython on
systems where another encoding is set in the locale
py: Add support for float/double arrays in array module.

Addresses issue #981.
windows: Update config with latest features

- update mpconfigport.h to reflect latest unix version
- fix compilation error in modure due to msvc not allowing dynamic arrays
drivers, cc3000: Cleaning up, make local functions static.
moduhashlib: Initial module skeleton.
moduhashlib: Add sha256 implementation from "crypto-algorithms" project.

https://github.com/B-Con/crypto-algorithms revision 100f4ff
moduhashlib: Integrate sha256 implementation.
tests: Add test for hashlib.sha256 .
Disable stack check
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.
Implement this LoadDynLib function for msvc.
msvc: Build seperate micropython dll and executable

- export some core functions using exports.def, export constants/data using the
typical dllexport (exporting data using .def file yields multiple copies of data).
- rename micropython project to micropythoncore and have it produce a dll + import lib
- add new micropython exe project (which just calls the exported main from the dll)
- add run.h/run.c which allow for easy embedding
- add property sheet for external modules