Require MAP_HUGETLB for munmap.

Since the call to mmap is protected by #ifdef MAP_HUGETLB, linking to
munmap is unnecessary if that flag isn't defined.

This updates an earlier change: https://github.com/facebook/rocksdb/pull/141
Move <sys/time.h> include to platform-specific header.
Move posix_logger out of core code.
Use correct macro to detect MSVC.
Move struct outside of function.

This fixes a number of Visual C++ compiler errors.
Use alloca for Visual C++.

MSVC doesn't support C99 variable-length arrays.
Remove unnecessary platform-specific include.
build_version.cc isn't generated on Windows.