tidy up compiler config headers, move type traits handling out to separate header