add windows support

- Windows specific details for dlopen are mentioned in dl.mli

- PosixTypes are mapped to appropriate windows types (if possible) or
 to int64_t. I didn't rearrange module dependecies to avoid breaking
 the interface. But a resorting at the next major release would be nice.

- It currently only works with mingw-w64/gcc , msvc support would
require more workarounds.  Msvc doesn't support many used c99 headers
and features (stdint.h, complex.h, etc.). And only mingw provides
helper functions to simplify the work (e.g. own printf implementation that
supports the usual format strings, unistd.h header)

- flexlink currently doesn't provide an equivalent to
'-Wl,--no-as-needed'.  Forcing flexlink to pass it at the right
position to the mingw-w64 toolchain is non-trivial. I modified the
test cases to avoid this issue on windows.

- test cases run without errors, but it might be not deterministic.
 (e.g. when I've linked it in a different way, dlsym selected another
 sprintf implementation from a windows dll)
Types that don't have any equivalent under windows are mapped to int64_t (arbitrary decision). There must be such a function, because of the external declarations inside posixTypes.ml (and these functions are called during startup, I can't throw an exception or similar). 

I didn't want to introduce something like camlp4.macro to the build process. And I didn't want to remove the posixTypes declarations completely for the windows build process. Some types are ansi c (e.g. time_t, clock_t ) and some of the other types could also be useful.