Move optimizer visitor to linq4j, add ExpressionType.modifiesLvalue to avoid inlining in such cases