Bug in the handling of __extension__ when instantiating template.

Afawct, the __extension__ keyword is partially supported by clang:
it is fully supported for expressions, where we do have a representation for __extension__ as a unary operator;
it is only partially supported for declarations, where no AST representation of the keyword is provided (rather, the parser state is changed when seeing the keyword and restored at the appropriate time).

We though this was enough for all clang clients except those working at the source code level ... but then we found the following testcase (coming from gcc), showing that spurious warnings can still arise: