macros for noline and always_inline

__attribute__ is very compiler specific, this supports forcing inline
and forcing noinline for gcc and msvc - clang will try to act like gcc
on nix systems and msc on windows
__attribute__((packed)) translation

unfortunately the pragma push/pop syntax is ugly which makes the macros
a little more obnoxious
add alignof and alignas to c++11 detection
alignment madness

this will make everything fallback to c++11 alignas and alignof if
they're detected to be working, but will use platform specific
alignas/alignof/max align if not
printf format and maxalign fixes

the only remaining __attribute__ uses are ifdef'd off by sanitizer,
ifunc, and weak ref checks
Merge branch 'cmake_build' into windows_build
Merge branch 'attributes_translation' into windows_build

Conflicts:
	folly/Arena.h
	folly/Conv.h
printf format and maxalign fixes

the only remaining __attribute__ uses are ifdef'd off by sanitizer,
ifunc, and weak ref checks
Merge branch 'attributes_translation' into windows_build

Conflicts:
	folly/Portability.h