stmhal: Enable DAC on STM32F4DISC.

Addresses issue #987.
Adding CAN filter management
py: #if guard str_make_new when not needed.
stmhal: Reduce coupling between USB driver and readline.

This makes it easier to re-use readline.c and pyexec.c from stmhal in
other ports.
stmhal: Remove unnecessary HAL_Delay in readline loop.

The reason for having this delay is to reduce power consumption at the
REPL (HAL_Delay calls __WFI to idle the CPU).  But stdin_rx_chr has a
__WFI in it anyway, so this delay call is not needed.

By removing this call, the readline input can consume characters much
more quickly (before was limited to 1000 chrs/s), and has much reduced
dependency on the specific port.
map: Add empty fixed map.

Useful when need to call kw-receiving functions  without any keywords
from C, etc.
builtin: Reimplement __repl_print__() in terms of print().

Before, __repl_print__() used libc printf(), while print() used uPy streams
and own printf() implementation. This led to subtle, but confusing
differences in output when just doing "foo" vs "print(foo)" on interactive
prompt.
pfenv_printf: Properly implement %p format specifier.

Previously, it truncated pointer value to 32 bits on 64-bit systems.
stmhal: Enable uhashlib module; add heapq, hashlib weak links.

hashlib test passes on pyboard.
py: Add NLR support for xtensa CPU.
esp8266: New port of Micro Python to ESP8266 wifi module.
esp8266: Allow to override serial port.
esp8266: Provide sensible default ESP_SDK; deploy 2 the images together.
esp8266: Change bignum from mpz to longlong; move some rodata to iram.

Some rodata items can go in iram/irom segment, but not others.  With
this patch ESP now has 24256 bytes of heap ram.  It passes 228 out of
248 tests from tests/basics directory.
Update uheapq.rst

Erratum in froh.
docs: Bump version to 1.3.7.
esp8266: Make default ESP_SDK variable work correctly.

When esp-open-sdk is built with STANDALONE=y (the default) then ESP_SDK
is set to the correct value, so that "make" just works.
modubinascii: Add, with hexlify() implementation.
esp8266: Move more rodata to irom section.

rodata can only go in iram/irom if it's accessed only using word loads
(ie no byte or half-word access).
Use MP_DEFINE_CONST_DICT macro to define module dicts.

This is just a clean-up of the code.  Generated code is exactly the
same.