[TypeTraits] Add utility TMP first_type to extract first type from a template argument pack