docs: select: Describe extra details.
py: Use __hash__ method if a type defines it
tests: Add test for hash of user defined class.
Document parameter "data" of i2c.mem_read() more clear

Hi,

i would like to add a little clarification to the parameter "data" of i2c.mem_read(): I misunderstood 

        ``data`` can be an integer or a buffer to read into

as "i can give a integer variable to read a integer into" .  This pull-request adds the following clarification:

         ``data`` can be an integer (number of bytes to read) or a buffer to read into

Thanks for your great work!

Best wishes,
Matthias
docs: Add optional sphinx_rtd_theme; add docs build instructions.

The sphinx_rtd_theme is used by ReadTheDocs to render a pretty looking
documentation.  If you have this theme installed locally then your
locally-compiled docs will look exactly like the published
documentation.   Otherwise it falls back to the default theme.
stmhal: Fix HAL error raising; make test for it.

Addresses issue #968.
stmhal: Improve CAN init so that it can take sjw, bs1, bs2 args.

Also update docs to explain how CAN baudrate is determined.
docs: Fix RTD build configuration.

ReadTheDocs needs the root directory in its search path so it finds
topindex.html.
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.
Merge remote-tracking branch 'upstream/master' into repl

Sync with micropython/master