py: Allow +, in, and compare ops between bytes and bytearray/array.

Eg b"123" + bytearray(2) now works.  This patch actually decreases code
size while adding functionality: 32-bit unix down by 128 bytes, stmhal
down by 84 bytes.
py: Allow bytes object as argument to some str methods.

This turns failing assertions to type exceptions for things like
b"123".find(...).  We still don't support operations like this on bytes
objects (unlike CPython), but at least it no longer crashes.
py: Fix some macros defines; cleanup some includes.
unix: Allow -X heapsize number take 'w' specifier for word size adjustment.

The specifier should go after the number, before size suffix like 'k' or 'm'.
E.g.: "-X heapsize=100wk" will use 100K heap on 32-bit system and 200K - on
64-bit.
py: Deactivate more code without MICROPY_PY_SYS

When compiler optimization has been turned on, gcc knows that this code
block is not going to be executed. But with -O0 it complains about
path_items being used uninitialized.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
bare-arm: Add dummy __assert_func and __fatal_error

Required to build bare-arm with debugging.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
stmhal: Declare variables extern in include files

Else we end up with several instances of the variable.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
py: Add order-only dependency for py-version.h

Else the directory might not exist.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
py: Remove obsolute function declaration.
py: Use shorter, static error msgs when ERROR_REPORTING_TERSE enabled.

Going from MICROPY_ERROR_REPORTING_NORMAL to
MICROPY_ERROR_REPORTING_TERSE now saves 2020 bytes ROM for ARM Thumb2,
and 2200 bytes ROM for 32-bit x86.

This is about a 2.5% code size reduction for bare-arm.
py: Fix order-only dependencies in mkrules.mk and py.mk.

Currently compilation sporadically fails, because the automatic
dependency gets created *during* the compilation of objects.

OBJ is a auperset of PY_O and the dependencies apply to all objects.

Signed-off-by: Sven Wegener <sven.wegener@stealer.net>
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.