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