Proposal: Add diagnostic enumeration to libclang

Hmm, I didn't realize the requirement was that strict. How can we
recover with a matching ast when the fixit has inserted code? the
inserted code has no source locations to refer to.

(Chandler and i have discussed this before & he mentioned this
generally works ok for the current very small fixits - even though we
don't have source locations for inserted code, it usually comes out as
intended if multiple fixits are applied one after the other in the
order they were found. Still scares me a bit)

(not to detail this even further but it seems a bit of a pity that high
value warnings end up noisier than you'd expect (by having to have the
reasonable/likely fixit in a note instead of the warning) because of
this rule)