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
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.