[AST] Refactor PredefinedExpr
Make the following changes to PredefinedExpr:
- Move PredefinedExpr below StringLiteral so that it can use its definition.
- Rename IdentType to IdentKind to be more in line with clang's conventions, and propagate the change to its users.
- Move the location and the IdentKind into the newly available space of the bit-fields of Stmt.
- Only store the function name when needed. When parsing all of Boost, of the 1357 PredefinedExpr 919 have no function name.
Differential Revision: https://reviews.llvm.org/D53605
Reviewed By: rjmccall