fix Issue 6620 - argument evaluation order inversed for extern(C)
Fix evaluation order of array operation operands left to right
Improve Expression::extractLast and completely extract argument side-effects