Make MicroPython compile with Visual Studio 2013

These are mostly minor changes to accomodate for what the MS compiler can't do,
and for what the Windows SDK doesn't have.
Note this is purely about compilation, no guarantees for what happens at runtime.
Changes include:
- can't have zero-sized arrays in a struct, so define the size based on compiler
- can't have variable-length arrays on the stack, use alloca instead
- fix for some weird CL bug (see mpz.c)
Add an implementation of realpath() for Windows ports

The MingW port used _fullpath() until now, but the behaviour is
not exactly the same as realpath()'s on unix; major difference
being that it wouldn't return an error for non-existing files,
hereby bypassing main's error checking and bailing out without
any error message.

Also realpath() will return forward slashes only since main() relies on that.

The regex in makeqstrdata.py is modified to allow having
function definitions in mpconfig.h
Fix floating point formatting

- default output format has 3 digits for the exponent, Python wants 2
- provide a platform specific function MICROPY_INIT_FUNC to allow
  setting such behaviour once at the start of the program
- MS snprintf implementation does not know %F so use %f instead
CPython compatibility: raise an error for operations on a closed file descriptor
Add a README file