Move Expression::implicitConvTo into a visitor class