Fixed the worst of the bad that was the detection heuristic for Obj-C vs C++ vs C

These commits fix the worst of the miss-detections people have been having with Obj-C, C++ and C code - particularly headers.