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.