This is like r305666 (which added support for if constexpr) except
that it allows a macro name after the if.
This is slightly tricky for two reasons:
- r305666 didn't add test coverage for all cases where it added a kw_constexpr, so I had to figure out what all the added cases were for. I now added tests for all if constexpr bits that didn't have tests. (This took a while, see e.g. https://reviews.llvm.org/D65223)
- Parsing if <ident> ( as an if means that #if defined( and #if __has_include( parse as ifs too. Add some special-case code to prevent this from happening where it's incorrect.
Fixes PR39248.
Do we want to pull out a function for the repeated condition?