gc: Use byte* pointers instead of void* for pointer arithmetic

void* is of unknown size
msvc: Enable GC and use custom function for getting bss start and end
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