Add support for DWARF in PECOFF as used by cygwin and mingw

For cygwin and mingw targets, build a dump_syms tool which can read DWARF
symbols contained in a PE/COFF executable.

I felt bad about making another copy of dump_symbols.cc, so this one has the
beginnings of being parameterized by an image file reader class, so we can apply
it to a pecoff-format image file reading class

Write pecoff format image file reading class which
- knows how to read PE32 and PE32+ image files
- makes PECOFF file id by fetching from a CV record or by hashing
- can read PECOFF exports as a fallback if there is no DWARF information
Fix building minidump processor tools for MinGW

This is a sub-set of changes in https://breakpad.appspot.com/548002/ with a bit
of updating

- Link minidump_stackwalk, minidump_dump with PTHREAD_LIBS as pthread_cancel is used
- Link minidump_stackwalk with ws2_32 as ntoh functions are used
- Fix wtypes.h include for case sensitive filesystems
- Various _s function variants should only be used if _MSC_VER, use _r variants  with MinGW
- Unfortunately current MinGW64 has a bug where _r variants are only prototyped in pthread.h
Build PECOFF/DWARF dump_syms for MinGW

Substitute MapViewOfFile() for mmap()