py: Fix builtin callable so it checks user-defined instances correctly.

Addresses issue #953.
py: Explicitly set uninitialised struct member to false.

Uninitialised struct members get a default value of 0/false, so this is
not strictly needed.  But it actually decreases code size because when
all members are initialised the compiler doesn't need to insert a call
to memset to clear everything.  In other words, setting 1 extra member
to 0 uses less code than calling memset.

ROM savings in bytes: 32-bit unix: 100; bare-arm: 44; stmhal: 52.
docs: Adjust table spacing in topindex page.
docs: Add skin imgs; change external links to micropython.org/resources.
docs: Add pdf size info to datasheet links.
docs: Add debounce tutorial; order Pin methods; add pull resistor info.
docs: Add links from quickref to pyb classes.
docs: Update front page to display date of last update.
docs: Bump version to 1.3.6.

This needs to be done before actually tagging the new version.
unix: fast: Set initial module dict size big to have high pystone score.

For this, introduce MICROPY_MODULE_DICT_SIZE config setting.
Disable stack check
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.
Implement this LoadDynLib function for msvc.
msvc: Build seperate micropython dll and executable

- export some core functions using exports.def, export constants/data using the
typical dllexport (exporting data using .def file yields multiple copies of data).
- rename micropython project to micropythoncore and have it produce a dll + import lib
- add new micropython exe project (which just calls the exported main from the dll)
- add run.h/run.c which allow for easy embedding
- add property sheet for external modules