Proposal: Add diagnostic enumeration to libclang

Sorry - two steps back. After a fixit is emitted on an error, the
compiler must recover exactly as if the code was written the way the
fixit suggested (so that get extra unrelated/incorrect fixits or
errors). In the case of warnings, if they become errors their fixits
need to meet the same bar so it's easier to just treat them the same in
both cases (whether they are currently a warning or an error) which
means the fixit in a warning can only suppress the warning without
changing program semantics.