Add __assert_func

* issue #692
Add __assert_func only if DEBUG=1
Make __assert_func weak
Merge pull request #693 from iabdalkader/assert

Add __assert_func
parsenum: Signedness issues.

char can be signedness, and using signedness types is dangerous - it can
lead to negative offsets when doing table lookups. We apparently should just
ban char usage.
stmhal: Update and improve LCD driver.

Still some method names to iron out, and funtionality to add, but this
will do for the first, basic version.
stmhal: Fix file print methods to use print instead of printf.

Also make stdout_print_strn static (ultimately this function needs to be
merged with stdout_tx_strn).
stmhal: Fix type signatures on functions that take variable args.
stmhal: Add Python function to set UART for REPL.

This adds a hook to get/set pyb_uart_global_debug from Python, using
pyb.repl_uart().  You can set it to an arbitrary UART object, and then
the REPL (in and out) is repeated on this UART object (as well as on USB
CDC).

Ultimately, this will be replaced with a proper Pythonic interface to
set sys.stdin and sys.stdout.
windows: Enable GC and implement bss start and end symbols

The pointers to the bss section are acquired in init.c()
by inspecting the PE header. Works for msvc and mingw.
py: Make import recognize and load native modules (.pyd or .so files)

Simply check if a .pyd or .so file exists on the Python search path
(if a .py file if not found) and call a function to get a module from it
msvc: Implement LoadDynLib
msvc: Make part of uPy dynamically loadable via import lib

Exports some core functions using exports.def, export constants/data using the
typical dllexport (exporting data using .def file yields multiple copies of data).
Create an import lib next to micropython.exe whcih can be used by modules.
msvc: Add property sheet for building native modules, update README
msvc: Add malloc_with_finaliser to exports since GC is ok now