mpz: Fix 64bit msvc build

msvc does not treat 1L a 64bit integer hence all occurences of shifting it left or right
result in undefined behaviour since the maximum allowed shift count for 32bit ints is 31.
Forcing the correct type explicitely, stored in MPZ_LONG_1, solves this.
stmhal: Added support for extended CAN frames.
tests: Added and adapted CAN tests for extended messages
stmhal: Improve CAN print function.
stmhal: Add ioctl to USB_VCP object, so it works with select.

This patch also enables non-blocking streams on stmhal port.

One can now make a USB-UART pass-through function:

def pass_through(usb, uart):
    while True:
        select.select([usb, uart], [], [])
        if usb.any():
            uart.write(usb.read(256))
        if uart.any():
            usb.write(uart.read(256))

pass_through(pyb.USB_VCP(), pyb.UART(1, 9600))
stmhal: Implement support for RTS/CTS hardware flow control in UART.

This is experimental support.  API is subject to changes.  RTS/CTS
available on UART(2) and UART(3) only.  Use as:

    uart = pyb.UART(2, 9600, flow=pyb.UART.RTS | pyb.UART.CTS)
docs: Add tutorial for fading LED using PWM, with fritzing image
docs: Fix links to images and other parts of the docs.
stmhal: Update some inlined docs for network and CAN.
tools: Make gendoc.py able to output RST format.
docs: Import documentation from source-code inline comments.

The inline docs (prefixed with /// in .c files) have been converted to
RST format and put in the docs subdirectory.
docs: Add 2 images for tutorials.
py: Add builtin round function.

Addresses issue #934.
stmhal: Fix UART so bits counts number of data bits, not incl parity.

Addresses issue #950.
py: Make gc.enable/disable just control auto-GC; alloc is still allowed.

gc.enable/disable are now the same as CPython: they just control whether
automatic garbage collection is enabled or not.  If disabled, you can
still allocate heap memory, and initiate a manual collection.
tests: Add heapalloc.py.exp, since CPython can't generate it.
docs: Cleanup and update some docs.
py: Fix bug with right-shifting small ints by large amounts.

Undefined behavior in C, needs explicit check.
stmhal: Improve pyb.freq to allow 8 and 16MHz (not usable with USB).

Also restrict higher frequencies to have a VCO_OUT frequency below
432MHz, as specified in the datasheet.

Docs improved to list allowed frequencies, and explain about USB
stability.
unix: Provide "fast" target to build interpreter for benchmarking.

This build is primarily intended for benchmarking, and may have random
features enabled/disabled to get high scores in synthetic benchmarks.
The intent is to show/prove that MicroPython codebase can compete with
CPython, when configured appropriately. But the main MicroPython aim
still remains to optimize for memory usage (which inevitibly leads to
performance degradation in some areas on some workloads).