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 .
stmhal: Enable DAC on STM32F4DISC.

Addresses issue #987.
Adding CAN filter management
py: #if guard str_make_new when not needed.
stmhal: Reduce coupling between USB driver and readline.

This makes it easier to re-use readline.c and pyexec.c from stmhal in
other ports.
stmhal: Remove unnecessary HAL_Delay in readline loop.

The reason for having this delay is to reduce power consumption at the
REPL (HAL_Delay calls __WFI to idle the CPU).  But stdin_rx_chr has a
__WFI in it anyway, so this delay call is not needed.

By removing this call, the readline input can consume characters much
more quickly (before was limited to 1000 chrs/s), and has much reduced
dependency on the specific port.