windows: Sync mpconfigport.h with the unix' version

- rearrange/add definitions that were not there so it's easier to compare both
- use MICROPY_PY_SYS_PLATFORM in main.c since it's available anyway
- define EWOULDBLOCK, it is missing from ingw32
modffi: Support short types.
gendoc.py: Support modules w/o functions and/or classes.

I.e. don't assume that both are always present.
Merge pull request #730 from stinos/windows-mpconfig

windows: Sync mpconfigport.h with the unix' version
stmhal: pyb.adc: Clarify that buffer with elements of any size can be used.

Based on forum post: http://forum.micropython.org/viewtopic.php?f=6&t=193
modsstruct: Foreign data interface module, roughly based on ctype ideas.

But much smaller and memory-efficient. Uses Python builtin data structures
(dict, tuple, int) to describe structure layout.

Currently, the only available docs are testcases.
modsstruct: sizeof(): Fix handling of recursive structs.
modsstruct: sizeof(): Operate on sstruct objects too (not just on layouts).
modsstruct: Replace some asserts with exceptions.
modsstruct: Implement sizeof() for PTR and ARRAY.
modsstruct: More docstrings for gendoc.py.
modsstruct: 64-bit cleanness.