Constexpr macro

adds a FOLLY_CONSTEXPR define - controlled by portability.h and the cmake build system (this has the cmake_build branch merged) 

This shouldn't change any existing functionality, only make visual studio not puke on constexpr