Move promoted_numerical_type to type_traits.h