first round of generic fixes

some non-standard gcc translation, and some weirdo windows -> posix
stuff - why in the world is ssize_t there?
Merge branch 'constexpr_macro' into windows_build
Merge branch 'noexcept_macro' into windows_build

Conflicts:
	folly/AtomicStruct.h
	folly/test/DeterministicSchedule.h
Merge branch 'fix_includes' into windows_build

Conflicts:
	folly/AtomicStruct.h
Merge branch 'cmake_build' into windows_build

Conflicts:
	folly/Bits.h
Merge branch 'misc_fixes' into windows_build

Conflicts:
	folly/Portability.h
Merge branch 'template_madness' into windows_build
Merge branch 'posix_implementations' into windows_build