Make C and CPP Headers separate filetypes

Accidently compiling headers makes gcc generate .gch files and
thereafter ignore changes to the source when compiling any file
that #includes the header.

So making filetypes that use compile commands that do not generate
the pre-compiled headers removes the risk of erroneously generating
header files.