This patch adds logic to save the components of mappable expressions in the clause that uses it, so that they don't have to be recomputed during codegen. Given that the mappable components are (will be) used in several clauses a new geneneric implementation OMPMappableExprListClause is used that extends the existing OMPVarListClause.
This patch does not add new tests. The goal is to preserve the existing functionality while storing more info in the clauses.
Please, use in-class initialization of class members, like:
Also, mark this constructor as explicit