[DDMD] [refactor] Move Expression::implicitCastTo into a visitor class