Use a proper lvalue-to-rvalue conversion in Objective-C++ property accessors.

Previously, the synthesized AST contained an rvalue DeclRefExpr for 'self'.
Now, it has an lvalue DeclRefExpr wrapped in an lvalue-to-rvalue
ImplicitCastExpr, which is what's generated when an ivar access is written
in the source.

No (intended) functionality change.
[analyzer] Use synthesized ASTs for property getters when available.

This allows the analyzer to handle properties with C++ class type,
finishing up the FIXME from r198953.
CFG: use Visit instead of VisitStmt to look through parens.

PR18472