Issue 11503 - immutable return value from pure function implicitly converts to mutable.
Remove CallExp::implicitCastTo altogether.

The pure -> immutable case is checked in implicitConvTo as well,
and since it yields MATCHexact, the castTo() in
Expression::implicitCastTo is a no-op anyway.
Issue 11909 - Struct members and static arrays break pure function escape analysis (immutability violation).
Clarify traverseIndirections implementation.

No functional change intended.
Make traverseIndirections() return bool instead of int.
Merge pull request #3085 from klickverbot/pure-return-immutable

pure -> immutable fixes